2015-04-07 105 views
0

我有一個使用管道分隔的列分開,我必須用其他值替換整個列。使用awk代替管道分隔列

實施例:

A | B | C 我想和 「Z」 來替代第二列, 甲| Z | C

+0

'awk -F'|' $ 2 =「Z」文件 – 2015-04-07 08:43:18

+0

我用這個命令,awk _F'|' '{$ 2 =「string」; print}'file_name,它正在替換,但它也取代了用空格分隔的管道 –

+0

謝謝,我通過使用你的命令得到了一個想法,awk _F'|' '{$ 2 =「string」; print}'file_name> new_file_name –

回答

3

更換第二場可以通過設置輸入來完成和輸出字段分隔符和簡單地改變所述第二場打印之前:

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 
+0

我用這個命令,awk _F'|' '{$ 2 =「string」; print}'file_name,它正在替換,但它也取代了用空格 –

+0

@Jim分隔的管道,所以你說的是你做了一些我沒有提及的東西,工作。不知何故,這是我的錯?開個玩笑:-)問題是'-F'只設置了_input_字段分隔符,您還想設置_output_,因此也是'BEGIN'塊。 – paxdiablo

+0

我越來越,BIGIN命令未找到 –