我有一个大文件,其中每一行的格式为
b d
其中b
和d
是数字。我想改变表格的所有行
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的观察。这个特殊的问题现在已经解决了,但是,如何以这种方式用更一般的模式替换文件的一般问题仍然存在。答案仍然受到欢迎。
答案 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