如何更换某些形式的部分线?

时间:2016-03-28 13:01:50

标签: linux unix text replace sed

我有一个大文件,其中每一行的格式为

b d

其中bd是数字。我想改变表格的所有行

b -1

b 1

其中b是任意数字(即它应保持不变)。

具体示例,文件

0.2 0.5
0.1 -1
0 -1
0.3 0.6

应该成为

0.2 0.5
0.1 1
0 1
0.3 0.6

是否有一种简单的方法可以使用sed或类似的工具来实现这一目标?

修改。只需从文件中删除所有-即可。感谢@Cyrus的观察。这个特殊的问题现在已经解决了,但是,如何以这种方式用更一般的模式替换文件的一般问题仍然存在。答案仍然受到欢迎。

1 个答案:

答案 0 :(得分:2)

试试这个:

tr -d '-' < old_file > new_file

或用-1替换第2列中的所有1

awk '$2==-1 {$2=1} 1' old_file > new_file

或使用GNU sed:

sed 's/ -1$/ 1/' old_file > new_file

如果你想用GNU sed“就地”编辑你的文件,请使用sed的选项-i

sed -i 's/ -1$/ 1/' file