要求
Col1 , Col2 , Col3 , Col4
1 , a:/b/c/abc.txt , f:/b/c/abc1.txt , a:/b/c/abc6.txt
2 , b:/bd/a/s/3/d/mon.dat , g:/b/c/abc 2.txt, b:/b/c/ab7.txt
3 , c:/j/h/4/u/y/d/m/ttt.dat, h:/b/c/abc 3.txt, c:/b/c/abc 8.txt
4 , c:/j/h/4/test1.msg , i:/b/c/abc4.txt , d:/b/c/abc 9.txt
5 , d:/iasa/dda/dia/yyy.dat , j:/b/c/abc5.txt , e:/b/c/abc 10.txt
期待 O/P
Col1 , Col2 , Col3 , Col4
1 , abc.txt , abc1.txt , abc6.txt
2 , mon.dat , abc2.txt , abc7.txt
3 , ttt.dat , abc3.txt , abc8.txt
4 , test1.msg , abc4.txt , abc9.txt
5 , yyy.dat , abc5.txt , abc10.txt
答案1
由於我無法推斷空間分佈中的任何系統,我只是猜測了一些格式。隨意適應口味。
awk -F, '{gsub (/ |\r/, ""); printf "%-4s ", $1; for (i=2; i<=NF; i++) {n=split($i, T, "/"); printf ", %-10s ", T[n]} printf RS}' OFS=, file
Col1 , Col2 , Col3 , Col4
1 , abc.txt , abc1.txt , abc6.txt
2 , mon.dat , abc2.txt , ab7.txt
3 , ttt.dat , abc3.txt , abc8.txt
4 , test1.msg , abc4.txt , abc9.txt
5 , yyy.dat , abc5.txt , abc10.txt
答案2
使用sed
和column
:
$ sed 's/ //g; s/,[^,]*\//,/g; s/,/ , /g' file | column -t
Col1 , Col2 , Col3 , Col4
1 , abc.txt , abc1.txt , abc6.txt
2 , mon.dat , abc2.txt , ab7.txt
3 , ttt.dat , abc3.txt , abc8.txt
4 , test1.msg , abc4.txt , abc9.txt
5 , yyy.dat , abc5.txt , abc10.txt
- 將所有空格字元替換為空字串
- 將所有
,
後面跟著的非,
字元替換為/
a,
- 全部替換
,
為,
- 將輸出漂亮地列印為表格
column