试图找到如何在 SED 中用空格替换前导零。尝试获取月份中的某一天并替换为空格以过滤我正在屏幕抓取的一些数据。
我的代码如下:
DoM=$(date --date="-1 day" +"%d")
DoMSp=$(echo $DoM | sed "s/^0*/\ /g"); echo $DoMSp
但问题是,当我有从 1-9 的一天而不是打印“1”时,它会打印“1”,无论我尝试在表达式中放入多少个“\”。
$ DoMSp=$(echo $DoM | sed "s/^0*/\ /g"); echo $DoMSp
1
$ DoMSp=$(echo $DoM | sed "s/^0*/\ \ \ \ \ \ /g"); echo $DoMSp
1
答案1
您不必在sed
命令中转义空格,只需在命令中使用双引号echo
即可避免分词:
$ DoMSp=$(echo "$DoM" | sed "s/^0*/ /"); echo "$DoMSp"
1