廢話沒有,直接上實用代碼付材,當你著急忙慌的時候朦拖,希望它能幫到你
測試數據:WorldCupGroup.data(9行X6列)
cat WorldCupGroup.data
分組第一檔第二檔第三檔第四檔第五檔
A組 中國 敘利亞 菲律賓 馬爾代夫 關島*
B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾
C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*
D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡
E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*
F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*
G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞
H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*
1.首先我們來獲取文件的總行數(方法有很多,當然你也可以使用wc -l WorldCupGroup.data厌衔;也可以實用less -SN WorldCupGroup.data璧帝,輸入G,查看行數富寿;更可以使用vim編輯器打開然后輸入:set nu睬隶,接著輸入G跳到最后一行,來查看行數)作喘,但是我們用awk實現就是下面的代碼:
awk 'END{print FILENAME"的行數為:"NR}' WorldCupGroup.data
WorldCupGroup.data的行數為:9
2.接著我們打印第5行內容(方法也有很多理疙,可以用sed)
awk 'NR==5' WorldCupGroup.data
D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡
當然如果你知道第五行有關鍵而且特殊的詞,例如‘D組’
awk '/D組/ {print $0}' WorldCupGroup.data或者
D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡
awk '$1~/D組/ {print $0}' WorldCupGroup.data
D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡
3.我們接著打印每個輸入行的最后一個字段
awk '{ print $NF }' WorldCupGroup.data
第五檔
關島*
尼泊爾
柬埔寨*
新加坡
孟加拉國*
蒙古*
印度尼西亞
斯里蘭卡*
4.然后泞坦,我們打印打印最后一行的最后一個字段
awk '{ field = $NF } END { print field }' WorldCupGroup.data
斯里蘭卡*
5.打印字段數小于等于6的行
awk 'NF<=6' WorldCupGroup.data
分組第一檔第二檔第三檔第四檔第五檔
A組 中國 敘利亞 菲律賓 馬爾代夫 關島*
B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾
C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*
D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡
E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*
F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*
G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞
H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*
6.打印最后一個字段數大于等于3的行
awk '$NF >=3' WorldCupGroup.data
分組第一檔第二檔第三檔第四檔第五檔
A組 中國 敘利亞 菲律賓 馬爾代夫 關島*
B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾
C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*
D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡
E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*
F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*
G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞
H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*
7.統(tǒng)計所有輸入行的字段數總和
awk '{ nf = nf + NF } END { print nf }' WorldCupGroup.data
54
8.打印包含‘組’的所有行數
awk '/組/ { nlines = nlines + 1 } END { print nlines }' WorldCupGroup.data
9
9.打印具有最大值的第一個字段, 以及包含它的行(字符串也是可以比較大小的窖贤,根據ASCII編碼的前后順序,具體見ASCII碼 - 基本ASCII碼和擴展ASCII碼,最全的ASCII碼對照表 (asciim.cn))
awk '$1 > max { max = $1; maxline = $0 } ?
END { print max, maxline }' WorldCupGroup.data
分組分組第一檔第二檔第三檔第四檔第五檔
10.打印字段數不為0的行
awk 'NF != 0' WorldCupGroup.data
分組第一檔第二檔第三檔第四檔第五檔
A組 中國 敘利亞 菲律賓 馬爾代夫 關島*
B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾
C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*
D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡
E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*
F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*
G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞
H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*
11.打印長度超過 60 個字符的行
awk 'length($0) > 60' WorldCupGroup.data
D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡
F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*
12.獲取每行的字符數
awk '{nch=length($0);print nch"\t"$0}' WorldCupGroup.data | column -t
56 分組 第一檔 第二檔 第三檔 第四檔 第五檔
52 A組 中國 敘利亞 菲律賓 馬爾代夫 關島*
57 B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾
52 C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*
69 D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡
52 E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*
61 F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*
58 G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞
52 H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*
13.在每一行的前面加上它的字段數
awk '{ print NF, $0 }' WorldCupGroup.data
6 分組 第一檔 第二檔 第三檔 第四檔 第五檔
6 A組 中國 敘利亞 菲律賓 馬爾代夫 關島*
6 B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾
6 C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*
6 D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡
6 E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*
6 F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*
6 G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞
6 H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*
14. 在每一行的前面加上行數、字段數赃梧、字符數
awk '{ nch=length($0);print NR"\t"NF"\t"nch"\t"$0 }' WorldCupGroup.data
1 6 56 分組 第一檔 第二檔 第三檔 第四檔 第五檔
2 6 52 A組 中國 敘利亞 菲律賓 馬爾代夫 關島*
3 6 57 B組 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾
4 6 52 C組 伊朗 伊拉克 巴林 中國香港 柬埔寨*
5 6 69 D組 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡
6 6 52 E組 卡塔爾 阿曼 印度 阿富汗 孟加拉國*
7 6 61 F組 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*
8 6 58 G組 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞
9 6 52 H組 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*
15.打印每一行的第 1 與第 2 個字段, 但順序相反
awk '{ print $2"\t"$1 }' WorldCupGroup.data
第一檔分組
中國A組
澳大利亞B組
伊朗C組
沙特阿拉伯D組
卡塔爾E組
日本F組
阿聯酋G組
韓國H組
16.我們繼續(xù)交換每一行的第 1 與第 2 個字段, 并打印該行
awk '{ temp = $1; $1 = $2; $2 = temp; print }' WorldCupGroup.data | column -t
第一檔分組第二檔第三檔第四檔第五檔
中國A組 敘利亞 菲律賓 馬爾代夫 關島*
澳大利亞B組 約旦 臺灣地區(qū) 科威特 尼泊爾
伊朗C組 伊拉克 巴林 中國香港 柬埔寨*
沙特阿拉伯D組 烏茲別克斯坦 巴勒斯坦 也門 新加坡
卡塔爾E組 阿曼 印度 阿富汗 孟加拉國*
日本F組 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*
阿聯酋G組 越南 泰國 馬來西亞* 印度尼西亞
韓國H組 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*
17.將每一行的第一個字段用行號代替
awk '{ $1=NR; print }' WorldCupGroup.data | column -t
1 第一檔 第二檔 第三檔 第四檔 第五檔
2 中國 敘利亞 菲律賓 馬爾代夫 關島*
3 澳大利亞 約旦 臺灣地區(qū) 科威特 尼泊爾
4 伊朗 伊拉克 巴林 中國香港 柬埔寨*
5 沙特阿拉伯 烏茲別克斯坦 巴勒斯坦 也門 新加坡
6 卡塔爾 阿曼 印度 阿富汗 孟加拉國*
7 日本 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*
8 阿聯酋 越南 泰國 馬來西亞* 印度尼西亞
9 韓國 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*
18.打印刪除了第 6個字段后的行
awk '{ $2 = ""; print }' WorldCupGroup.data | column -t
分組第二檔第三檔第四檔第五檔
A組 敘利亞 菲律賓 馬爾代夫 關島*
B組 約旦 臺灣地區(qū) 科威特 尼泊爾
C組 伊拉克 巴林 中國香港 柬埔寨*
D組 烏茲別克斯坦 巴勒斯坦 也門 新加坡
E組 阿曼 印度 阿富汗 孟加拉國*
F組 吉爾吉斯斯坦 塔吉克斯坦 緬甸 蒙古*
G組 越南 泰國 馬來西亞* 印度尼西亞
H組 黎巴嫩 朝鮮 土庫曼 斯里蘭卡*
19.將每一行的字段按逆序打印
awk '{ for (i = NF; i > 0; i = i - 1) printf("%s ", $i);printf("\n") }' WorldCupGroup.data | column -t
第五檔第四檔第三檔第二檔第一檔分組
關島* 馬爾代夫 菲律賓 敘利亞 中國 A組
尼泊爾科威特臺灣地區(qū)約旦澳大利亞B組
柬埔寨* 中國香港 巴林 伊拉克 伊朗 C組
新加坡也門巴勒斯坦烏茲別克斯坦沙特阿拉伯D組
孟加拉國* 阿富汗 印度 阿曼 卡塔爾 E組
蒙古* 緬甸 塔吉克斯坦 吉爾吉斯斯坦 日本 F組
印度尼西亞馬來西亞* 泰國 越南 阿聯酋 G組
斯里蘭卡* 土庫曼 朝鮮 黎巴嫩 韓國 H組