我想检查第一列是否有4位数字,如果没有,请在前面加上0
,以便所有数字都应为4位数字(使用awk,bash等):
T12FT 19/11/19 2000
T12FT 18/12/19 2040
T5 19/11/19 2000
T5 18/12/19 2080
T0015 19/11/19 2050
T0015 18/12/19 2060
我想得到以下输出:
T0012FT 19/11/19 2000
T0012FT 18/12/19 2040
T0005 19/11/19 2000
T0005 18/12/19 2080
T0015 19/11/19 2050
T0015 18/12/19 2060
我该怎么做?
答案 0 :(得分:3)
您可以使用sed来做到这一点:
sed -E '
s/[[:digit:]]/000&/
s/[[:digit:]]*([[:digit:]]{4})/\1/
' infile
第一个替换项在行的第一个数字前插入000
,因此中间状态为
T00012FT 19/11/19 2000
T00012FT 18/12/19 2040
T0005 19/11/19 2000
T0005 18/12/19 2080
T0000015 19/11/19 2050
T0000015 18/12/19 2060
然后第二个替换保留第一组数字的最后四位数字:
T0012FT 19/11/19 2000
T0012FT 18/12/19 2040
T0005 19/11/19 2000
T0005 18/12/19 2080
T0015 19/11/19 2050
T0015 18/12/19 2060