Linux文件處理類命令

1、cut命令

  • 命令解釋

  cut - remove sections from each line of files(數據剪切,即從文件的每行中移除一些部分)

  • 命令語法

  cut OPTION… [FILE]…

  • 命令選項

選 項 作 用
-b 以字節爲單位進行分割
-c 以字符爲單位進行分割
-d 自定義分隔符,默認爲製表符
-f 與-d一起使用,指定顯示哪個區域
-n 取消分割多字節字符。僅和 -b 標誌一起使用。如果字符的最後一個字節落在由 -b 標誌的 List 參數指示的範圍之內,該字符將被寫出;否則,該字符將被排除
  • 實例

  這裏先給出一段浪漫的文本:

I LOVE YOU and I MISS YOU.
YOU LIKE ME but I DON’T MISS YOU.


  ① 提取每行第三個字節;
[root@localhost tmp]# cut -b 3 test
L
U
  ② 提取每行第十二個字符之後的內容(包括十二);
[root@localhost tmp]# cut -c 12- test
and I MISS YOU.
 but I DON'T MISS YOU.
  ③ 以字母"I"爲分隔符,提取每行第一個"I"與第二個"I"之間的內容;
[root@localhost tmp]# cut -d "I" -f 2 test
 LOVE YOU and
KE ME but

2、sort命令

  • 命令解釋

  sort - sort lines of text files(以ASCII 碼的次序對文本文件的行進行排序)

  • 命令語法

  sort [OPTION]… [FILE]…
  sort [OPTION]… --files0-from=F

  • 命令選項

選 項 作 用
-f 忽略大小寫
-b 忽略每行最前面的空格符部分
-M 以月份的名字來排序
-n 使用純數字進行排序
-r 以相反的順序排序
-u 即uniq,相同的數據只出現一行
-t 指定排序時所用的欄位分隔字符
-k 以指定區間來進行排序
-o 將結果寫入到文件中
  • 實例

  同樣還是先給出一段文本(第一個域是公司名稱,第二個域是公司人數,第三個域是員工工資,全瞎編的別信哦🤭):

google 110 5000
baidu 100 5000
guge 50 3000
sohu 100 4500


  ① 按照員工工資降序排序,如果相同,則按照公司人數升序排序;
[root@localhost tmp]# sort -t ' ' -k 3nr -k 2n test    //這裏去掉-r和-n選項,而將它們加入到了每一個-k選項中了,作用是一樣的!
baidu 100 5000
google 110 5000
sohu 100 4500
guge 50 3000
  ②按照公司名稱的第二個字母進行排序,如果相同,則按照員工工資降序排序;
[root@localhost tmp]# sort -t ' ' -k 1.2,1.2 -k 3nr test    //這裏我們使用1.2,1.2的形式對域設置了起始點和終止點。
baidu 100 5000
google 110 5000
sohu 100 4500
guge 50 3000

3、uniq命令

  • 命令解釋

  uniq - report or omit repeated lines(報告或省略排序過文件的重複行)

tips:既是排序過,可想而知,要使uniq起作用,所有重複行必須是相鄰的,因此uniq經常和sort合用。

  • 命令語法

  uniq [OPTION]… [INPUT [OUTPUT]]

  • 命令選項

選 項 作 用
-c 或 --count 在每行前面顯示該行重複出現的次數
-d 或 --repeated 只顯示重複行
-D 顯示所有重複行
-f 比較時忽略前N列
-i 忽略大小寫區別
-s 比較時跳過前N個字符
-w 只比較N個字符的內容,默認從開始算起,如果和-s使用即從指定位置開始
-u 只顯示唯一行
-z 末尾生成0個字節的終止符作爲輸出(\0),這樣的目的就是避免一條記錄行因爲存在空格被識別爲多行
  • 實例

  一段水果名稱組合起來的文本:

Apple
apple
banana
cherry
cherry
peach core
pear core
apple


  ①跳過第一列字符,並在前面加上重複出現的次數;
[root@localhost tmp]# uniq -c -f1 test
      5 Apple
      1 peach    core
      1 pear     core
      1 apple
  ②跳過每行的第一個字符,且只比較兩位;
[root@localhost tmp]# uniq -s1 -w2 test
Apple
banana
cherry
peach    core
apple

4、wc命令

  • 命令解釋

  wc - print newline, word, and byte counts for each file(統計指定文件的打行數、字數和字節數並輸出)

  • 命令語法

  wc [OPTION]… [FILE]…
  wc [OPTION]… --files0-from=F

  • 命令選項

選 項 作 用
-c 統計字節數
-l 統計行數
-m 統計字符數。不能與 -c 選項一起使用
-w 統計字數。一個字被定義爲由空白、跳格或換行字符分隔的字符串
-L 打印最長行的長度
  • 實例

  浪漫文本來了:

Cold here, icy cold there.
You belong to neither, leaves have withered.
Your face is pale and blue, a tearful smile.
Something in your eyes, whispers words of last good-bye.
My heart sinks down, tears surge out.


  查詢這段文本的字節數、行數、字數以及最長行的長度;
[root@localhost tmp]# wc -clwL test
  5  37 211  56 test
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章