如何将文件中特定列中的唯一值更改为linux中的另一个值?

时间:2017-04-06 20:09:34

标签: 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

任何建议?

2 个答案:

答案 0 :(得分:1)

您可以使用src三元运算符

awk

由于默认 awk '{$2=(($2=="1")?"4":$2)}1' file 按单个空格分割输入字段,我们可以直接检查awk以包含$2值,如果可以,我们可以将其替换为1,否则保留值本身。 4将打印包含字段更新的文件。

答案 1 :(得分:0)

你可以看看awk。

例如,尝试以下方法:

cat your_file_name | awk {'printf $1 " " (($2!="1") ? $2 : "4") " " $3 "\n";'}