使用awk替换管道分隔的列

时间:2015-04-07 08:40:40

标签: shell awk

我有一个使用竖线分隔的列分隔,我必须用其他一些值替换整个列。

示例:

A | B | C 我想用" Z"替换第二列。作为, 甲| Z | C

2 个答案:

答案 0 :(得分:4)

更换第二个字段可以通过设置输入和输出字段分隔符并在打印前简单地更改第二个字段来完成:

awk 'BEGIN {FS = OFS = "|"} {$2 = "Z"; print}' inputFileName

根据以下成绩单:

pax$ printf 'A|B|C\nD|E|F\n' | awk 'BEGIN{FS=OFS="|"}{$2="Z";print}'
A|Z|C
D|Z|F

答案 1 :(得分:0)

下面的命令提供了预期的解决方案,

awk -F'|' '{$2="string";print}' file_name > new_file_name

$ 2->表示定界符的第二个位置|