shell中 sed或awk 把文件的两个字段调换位置

一个文件如下 cat 1.txt
a,b,ad,d,e,d
adf,wer,wer,wer,wer,sdf
以逗号为分割符,把最后两个字段内容呼唤位置,用sed或awk如何处理呢?

sed -r 's/^(.*),(.*),(.*)$/\1,\3,\2/' 1.txt

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-19
#!/bin/bash
#来自DZ动力(verydz.com)
awk -F, '{OFS=","; print $1,$2,$3,$4,$NF,$(NF-1)}' 1.txt

第2个回答  2013-07-19
echo a,b,c,d,e |awk -F "," -v OFS="," '{tem=$NF; $NF=$(NF-1);$(NF-1)=tem;}'1
a,b,c,e,d
第3个回答  2013-09-22
awk -F, '{print $1","$2","$3","$4","$6","$5}' 1.txt
第4个回答  2013-07-19
awk -F"," 'BEGIN{OFS=FS} {tmp=$(NF-1);$(NF-1)=$NF;$NF=tmp;print}' 1.txt

This is better, this will keep your file as its original form.本回答被网友采纳
相似回答