Awk用空白值替换第n个字符

时间:2016-05-02 10:00:50

标签: awk

我有以下文件,其中包含100个条目,我想在unix框中用空格和awk命令替换第46个字符(N)。有谁知道最好的方法吗?

TESTENTRY1||||||N|Y|N|OFF||N||||N|L|N|0|N|0|N|N||||A|0||0||N|N|N|Y|N||0|N|N||0|||N|N|N|N|N
TESTENTRY2||||||N|Y|N|OFF||N||||N|L|N|0|N|0|N|N||||A|0||0||N|N|N|Y|N||0|N|N||0|||N|N|N|N|N

所以看起来如下:

TESTENTRY1||||||N|Y|N|OFF||N||||N|L|N|0|N|0|N|N||||A|0||0||N|N|N|Y|N||0|N|N||0|||N||N|N|N
TESTENTRY2||||||N|Y|N|OFF||N||||N|L|N|0|N|0|N|N||||A|0||0||N|N|N|Y|N||0|N|N||0|||N||N|N|N

1 个答案:

答案 0 :(得分:2)

$ awk 'BEGIN { FS=OFS="|" } { $46 = "" }1' nnn.txt
TESTENTRY1||||||N|Y|N|OFF||N||||N|L|N|0|N|0|N|N||||A|0||0||N|N|N|Y|N||0|N|N||0|||N||N|N|N
TESTENTRY2||||||N|Y|N|OFF||N||||N|L|N|0|N|0|N|N||||A|0||0||N|N|N|Y|N||0|N|N||0|||N||N|N|N
  在读取记录之前,

BEGIN { FS=OFS="|" }将输入和输出字段分隔符设置为垂直条。

     

{ $46 = "" }将第46列设置为每条记录中为空。

     

尾随1将结果记录打印到输出。