使用 awk 替换管道分隔列

Jim*_*lay 1 shell awk

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

例子 :

A|B|C 我想用“Z”替换第二列,A|Z|C

pax*_*blo 5

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

awk 'BEGIN {FS = OFS = "|"} {$2 = "Z"; print}' inputFileName
Run Code Online (Sandbox Code Playgroud)

根据以下成绩单:

pax$ printf 'A|B|C\nD|E|F\n' | awk 'BEGIN{FS=OFS="|"}{$2="Z";print}'
A|Z|C
D|Z|F
Run Code Online (Sandbox Code Playgroud)