1

我有一个包含一些数字的文件

例如

$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。

你可以帮帮我吗?

4

2 回答 2

3

你快到了,你只需要过滤掉以 34 开头的行:

awk '!/^34/{printf 34}1' file
于 2013-07-19T17:02:01.557 回答
3

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

sed -i '/^34/!s/^/34/' file
于 2013-07-19T17:34:06.600 回答