如何在 SED 中用空格替换前导零?

如何在 SED 中用空格替换前导零?

试图找到如何在 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

相关内容