我有一個data.csv檔案,它的內容:
0,H,"First Job"
0,M,"Second Job"
0,L,"Third Job"
...
用戶可以在第三列中搜索其術語,如下所示:
./find.sh 第三
#!/bin/bash
awk -F"," -v findit="$1" '$3 ~ findit' data.csv
我想更改結果的顯示格式awk以顯示結果行,如下所示:
3 | 0 | L | "Third Job"
數字3表示在第 3 行找到結果。我怎樣才能做到這一點?
uj5u.com熱心網友回復:
使用您顯示的示例,請嘗試以下awk代碼。
awk -v findit="$1" 'BEGIN{FS=",";OFS=" | "} $3~findit{$1=$1;print FNR,$0}' Input_file
解釋:簡單的解釋是,創建awk其中具有 shell 變數值的變數$1,并在BEGIN部分設定FSas,和OFSas 中|。在主程式中檢查第 3 列是否與 findit 匹配,然后將第 1 個欄位重新分配給自身以OFS基本上應用于它并列印FNR后跟當前行值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/491427.html
