将数字添加到bash中某些行的开头

时间:2013-07-19 16:58:00

标签: linux bash shell sh

我有一个带有一些数字的文件

例如

$cat file
347678126
345258126
4378126
349878126
346123126
9678130
344838126
5678126

如果该行不以34开头,并且如果该行以34开头不添加任何内容,我需要将数字34添加到一行

输出:

$cat file
347678126
345258126
344378126
349878126
346123126
349678130
344838126
345678126

我打算用awk:

cat file | awk '{print 34$1}' > file2

但它增加了34行。

你能帮帮我吗?

2 个答案:

答案 0 :(得分:3)

你几乎就在那里,你只需要过滤出以34开头的行:

awk '!/^34/{printf 34}1' file

答案 1 :(得分:3)

sed可以方便地就地编辑文件

sed -i '/^34/!s/^/34/' file