2013-06-24 69 views
1

我有一個N列的平面文件。我們如何在UNIX shell腳本中對此進行編程?

第N列在不同行中包含幾次「abc」字。

如何將'abc'這個單詞替換爲'def'。

輸出文件應該包含相同的數據,直到'N-1'列,只有在第N列中,單詞'abc'的多個出現應該被更改爲'def'。

請告知如何實現此目的。

問候, 斯里裏

+1

是列固定寬度,或用定界符可變寬度?如果有分隔符,它是否也可以出現在字段中(大概是引用或以某種方式轉義)? –

+0

嗨克里斯,分隔符是獨特的':' – srihari

+0

列是可變寬度。數據中不會出現分隔符。謝謝。 – srihari

回答

1

隨着awk

awk 'BEGIN{FS=OFS=":"}{$NF=($NF~/abc/)?"def":$NF}1' your_file 
+0

嗨JS非常感謝你的回答,請你給我解釋一下上面的命令,再次感謝你的時間 – srihari

+0

不客氣。 'NF'表示字段的數量。 '$ NF'將代表最後一列。因此,如果我們的最後一列像'abc',我們將其更改爲'def'。如果不是,我們保持原樣。 '1'告訴'awk'打印有或沒有更改的行。 –