如何使用 sed 删除 mm/dd 日期中第一次出现的 0?

如何使用 sed 删除 mm/dd 日期中第一次出现的 0?

我想删除 mm/dd 中第一次出现的 0,例如我想让看起来09/09/159/9/15.

我尝试过使用echo 09/10/15 | sed 's/^.//',但它给出的输出类似于9/09/15.我怎样才能做到这一点?

答案1

echo 01/01/2005 | sed 's=\(^\|/\)0=\1=g'

如果 0 前面是行首或 /,则将其替换为该行开头(即什么都没有或 /)。

答案2

如果我理解正确,您想0从日期字符串中删除所有前导 s 。如果是这样,请尝试以下操作:

sed 's/0\([1-9]\)/\1/g'

它匹配 a0后跟 1 到 9 之间的任何数字,括号捕获该数字。然后将整个模式替换为匹配的 >0 数字 ( \1)。

答案3

sed 's/^/ /;s/\([^0-9.]\)0*\([1-9]\)/\1\2/g;s/.//' <infile >outfile

...将从一行中至少包含一个非零数字的所有数字字符组中删除所有前导零。

相关内容