我正在學習AWK,並試圖對內置字符串函數進行一些練習。awk命令拆分第n個字段
這裏是我的鍛鍊:
我有一個包含如下
RecordType:83
1,2,3,a|x|y|z,4,5
而我需要的輸出文件是如下:
RecordType:83
1,2,3,a,4,5
1,0,0,x,4,5
1,0,0,y,4,5
1,0,0,z,4,5
我寫了一個awk命令用於上述輸出。
awk -F',' '$1 ~ /RecordType:83/{print $0}
$1 == 1{
split($4,splt,"|")
for(i in splt)
{
if(i==1)
print $1,$2,$3,splt[i],$5,$6
else
print $1,0,0,splt[i],$5,$6
}
}' OFS=, file_name
上面的命令看起來很笨拙。有什麼辦法來最小化命令?
在此先感謝
AWK -F,「NR> 1 {分裂($ 4, 「|」);對於(i的一個)$ 4 = A [1];打印; $ 2 = $ 3 = 0}} NR == 1'OFS =,文件 – kattashri 2013-04-09 05:52:59
我剛剛修改了上面的命令以適用於多行 – kattashri 2013-04-09 05:55:28
您最好使用傳統的for循環,以保證順序。 – 2013-04-09 07:44:43