我有一個包含逗號分隔行的 .temp 檔案:
abc,1,000,aaa,zzz,2,234,OOO,00001,01,123,214
def,2,003,bbb,yyy,4,345,PPP,00002,02,133,224
ghi,3,011,ccc,xxx,6,456,QQQ,00003,03,143,234
jkl,4,012,ddd,www,8,567,RRR,00004,04,153,244
...
讀取每一行,第三列用于更新第 9 列
我可以使用以下方法執行此操作:
indexToUpdate=9
updatedLine="$(echo "$line" | sed "s/[^,]*/$new9thColumnData/$indexToUpdate")"
我的問題是,除了使用 sed 之外,是否有更快的方法來更新第 9 列資料?
uj5u.com熱心網友回復:
除了potong的建議,您還可以使用例如awk:
awk -F ',' '{ OFS=FS; $9=$3; print }' file
uj5u.com熱心網友回復:
perl -lanF, -e 'print join ",", @F[0..7,2,9..$#F]' file
或者,像上面的 awk 一樣:
perl -lanF, -e '$F[8]=$F[2]; print join ",", @F' file
使用 perl 的自動拆分以逗號分隔,這會創建 @F 陣列,然后以不同的順序列印。
并不是說 perl 比 sed 或 awk 快...
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357977.html
上一篇:復制整個目錄但排除具有特定名稱的所有檔案夾和子檔案夾
下一篇:如何將id傳遞給模態視窗組件
