![SED 在一个文件中切换由 , 分隔的列](https://linux22.com/image/95761/SED%20%E5%9C%A8%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E4%B8%AD%E5%88%87%E6%8D%A2%E7%94%B1%20%2C%20%E5%88%86%E9%9A%94%E7%9A%84%E5%88%97.png)
我有一个包含 65k 行的文件,如下所示:
Mumford & Sons,Wilder Mind (Deluxe),Believe - Live,02 Oct 2016 10:25
Mumford & Sons,Wilder Mind (Deluxe),Tompkins Square Park,02 Oct 2016 10:19
Mumford & Sons,Wilder Mind (Deluxe),Believe,02 Oct 2016 10:16
Bon Iver,22 A Million,00000 Million,02 Oct 2016 10:06
Bon Iver,22 A Million,____45_____,02 Oct 2016 10:03
Bon Iver,22 A Million,8 (circle),02 Oct 2016 09:58
我已经尝试了很多,但我无法完成。我需要它看起来像这样:
Mumford & Sons,Believe - Live,Wilder Mind (Deluxe),02 Oct 2016 10:25
这样第二列就会与第三列交换。有什么简单的方法可以做到这一点吗?
答案1
这行得通吗?
awk -F, '{A=$3; $3=$2; $2=A; print}' OFS=, yourfile
基本上-F
就是说你用 分隔列,
,主体切换第二列和第三列,然后print
修改行。
答案2
sed -r 's/(.*),(.*),(.*),(.*)/\1,\3,\2,\4/' file
Mumford & Sons,Believe - Live,Wilder Mind (Deluxe),02 Oct 2016 10:25
Mumford & Sons,Tompkins Square Park,Wilder Mind (Deluxe),02 Oct 2016 10:19
Mumford & Sons,Believe,Wilder Mind (Deluxe),02 Oct 2016 10:16
Bon Iver,00000 Million,22 A Million,02 Oct 2016 10:06
Bon Iver,____45_____,22 A Million,02 Oct 2016 10:03
Bon Iver,8 (circle),22 A Million,02 Oct 2016 09:58