在linux中,如何将文件中特定列中的唯一值更改为另一个值?
我有这样一个文件:在linux中,如何将文件中特定列中的唯一值更改为另一个值?,linux,awk,Linux,Awk,我有这样一个文件: col1 col2 col3 1 1 1 2 1 2 3 1 1 23 2 2 2 1 1 3 2 2 2 2 2 我希望在第二列中,将值为1的所有行更改为4。因此,输出应为: col1 col2 col3 1 4 1 2 4 2 3 4 1 23 2 2 2 4 1 3 2 2 2 2 2 有什么建议吗?你可以看看awk 例如,请尝试以下操作: cat your_file_name | awk{'printf$
col1 col2 col3
1 1 1
2 1 2
3 1 1
23 2 2
2 1 1
3 2 2
2 2 2
我希望在第二列中,将值为1的所有行更改为4。因此,输出应为:
col1 col2 col3
1 4 1
2 4 2
3 4 1
23 2 2
2 4 1
3 2 2
2 2 2
有什么建议吗?你可以看看awk 例如,请尝试以下操作:
cat your_file_name | awk{'printf$1'(($2!=“1”)?$2:“4”)“$3”\n”}
您可以使用awk
三元运算符
awk '{$2=(($2=="1")?"4":$2)}1' file
由于默认情况下,awk
将输入字段拆分为一个空格,因此我们可以直接检查$2
以将值包含为1
,如果是,我们可以将其替换为4
,否则保留值本身。{}1
将打印带有字段更新的文件