Text-Processing
通過製表符分隔文件中多列的下劃線自定義排序和刪除雙引號連接
當我使用以下命令時 ,基於主題列順序的自定義排序應該是數學、英語、科學
awk -F',' '{if (NR!=1) {print $2,$3,$5,$4}}' myfile.csv
在我的myfile.csv上,我得到了這樣的結果,但我想要其他方式
"101" "Anna" "Maths" "V" "102" "Bob" "Maths" "V" "103" "Charles" "Science" "VI" "104" "Darwin" "Science" "VI" "105" "Eva" "English" "VII"
基於主題列順序的排序應該是數學、英語、科學
刪除雙引號並用下劃線連接,
如下所示
101_Anna_Maths_V 102_Bob_Maths_V 105_Eva_English_VII 103_Charles_Science_VI 104_Darwin_Science_VI
原始文件:輸出
cat myfile.csv
Sl.No,RollNo,Names,Class,Subject 1,101,Anna,V,Maths 2,102,Bob,V,Maths 3,103,Charles,VI,Science 4,104,Darwin,VI,Science 5,105,Eva,VII,English
您的原始命令:
awk -F',' '{if (NR!=1) {print $2,$3,$5,$4}}' myfile.csv
您以慣用
awk
方式編寫的命令:awk -F',' 'NR > 1 { print $2, $3, $5, $4 }' myfile.csv
上面的命令,修改為刪除每行輸入的所有雙引號
NR > 1
:awk -F',' 'NR > 1 { gsub(/"/, ""); print $2, $3, $5, $4 }' myfile.csv
上面的命令,修改為以
_
作為輸出欄位分隔符 (OFS
) 的輸出:awk -F',' -vOFS='_' 'NR > 1 { gsub(/"/, ""); print $2, $3, $5, $4 }' myfile.csv