在AWK

2011-10-14 34 views
4

移調兩個字段假設一個文件的樣子:在AWK

a|b|c|d 
a|b|c|d 
... 
a|b|c|d 

如何調換兩個領域,例如:

c|b|a|d 
c|b|a|d 
... 
c|b|a|d 

提前感謝!

回答

4

這裏是另一種解決方案:交換冷杉t和第三個字段,然後打印:

awk -F '|' '{ temp=$1; $1=$3; $3=temp; print }' data.txt 
2

至少如果沒有記錯,這一般順序的東西應該工作:

BEGIN { FS="|"; } 

    { printf("%s|%s|%s|%s\n", $3, $2, $1, $4); } 
+0

你的記憶力很好。 – Johnsyweb

2

傑裏是「正確的」,但有一個更簡潔的方式來完成這個

awk -F\| '{print $3FS$2FS$1FS$4}' input.csv

FS表示場分隔符您可以將其更改爲$ 3「」$ 2「」等。如果它更容易