用shell修改第一列的字符串

举个例子
比如 我有 1.txt 里面内容是
19900521 aaa sssssss
19900522 sss ccccccc
...
...
...

如何改成

20100521 aaa sssssss
20100522 sss ccccccc
...
...
...

要把整个文件第一列1990的这部分全部替换成2010
第一列不一定是纯数字

第1个回答  2015-05-05
sed -i 's/^1990/2010/g' 1.txt追问

如果 要改成
2010 aaa sssssss
2010 sss ccccccc

这样前面8位变4位呢

追答

那你得用awk获取第一列直接替换即可
#!/bin/sh
for x in `cat a.txt`;do
str=`echo $x |awk '{print $1}' `
sed -i "s/^${str}/2010/g" a.txt
done

追问

替换成功了,但是 为何程序 结束后一直 挂在那里 不自动关闭呢
搞得我一直以为 还在执行

追答

例如./a.sh

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网