1. 程式人生 > >(轉)cut命令詳解

(轉)cut命令詳解

控制 分屏顯示 ctrl+ 分隔符 comm 參數 分享圖片 合並 字節

cut

文件內容查看

顯示行中的指定部分,刪除文件中指定字段

顯示文件的內容,類似於下的type命令。

說明

  • 該命令有兩項功能,其一是用來顯示文件的內容,它依次讀取由參數file所指明的文件,將它們的內容輸出到標準輸出上;其二是連接兩個或多個文件,如cut fl f2 > f3將把文件fl和幾的內容合並起來,然後通過輸出重定向符“>”的作用,將它們放入文件f3中。
  • 當文件較大時,文本在屏幕上迅速閃過(滾屏),用戶往往看不清所顯示的內容。因此,一般用more等命令分屏顯示。

    為了控制滾屏,可以按Ctrl+S鍵,停止滾屏;按Ctrl+Q鍵可以恢復滾屏。

    按Ctrl+C(中斷鍵可以終止該命令的執行,並且返回Shell提示符狀態。

語法

cut(選項)(參數)

選項

技術分享圖片
-b:僅顯示行中指定直接範圍的內容;

-c:僅顯示行中指定範圍的字符;

-d:指定字段的分隔符,默認的字段分隔符為“TAB”;

-f:顯示指定字段的內容;

-n:與“-b”選項連用,不分割多字節字符;

--complement:補足被選擇的字節、字符或字段;

--out-delimiter=<字段分隔符>:指定輸出內容是的字段分割符;

--help:顯示指令的幫助信息;

--version:顯示指令的版本信息。
技術分享圖片

參數

文件:指定要進行內容過濾的文件。

實例

1.例如有一個學生報表信息,包含No、Name、Mark、Percent:

技術分享圖片
cat test.txt

No Name Mark Percent
01 tom 69 91
02 jack 71 87
03 alex 68 98
技術分享圖片

使用 -f 選項提取指定字段:

技術分享圖片
cut -f 1 test.txt
結果:
No
01
02
03
技術分享圖片 技術分享圖片
cut -f2,3 test.txt
結果:
Name Mark
tom 69
jack 71
alex 68
技術分享圖片

--complement 選項提取指定字段之外的列(打印除了第二列之外的列):

技術分享圖片
cut -f2 --complement test.txt
結果:
No Mark Percent
01 69 91
02 71 87
03 68 98
技術分享圖片

2.使用 -d 選項指定字段分隔符:

技術分享圖片
cat test2.txt

No;Name;Mark;Percent
01;tom;69;91
02;jack;71;87
03;alex;68;98

cut -f2 -d";" test2.txt
結果:
Name
tom
jack
alex
技術分享圖片

3.指定字段的字符或者字節範圍

技術分享圖片
cut命令可以將一串字符作為列來顯示,字符字段的記法:

N-:從第N個字節、字符、字段到結尾;

N-M:從第N個字節、字符、字段到第M個(包括M在內)字節、字符、字段;

-M:從第1個字節、字符、字段到第M個(包括M在內)字節、字符、字段。

上面是記法,結合下面選項將摸個範圍的字節、字符指定為字段:

-b 表示字節;

-c 表示字符;

-f 表示定義字段。
技術分享圖片

例:

技術分享圖片
cat test.txt

abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
技術分享圖片

打印第1個到第3個字符:

技術分享圖片
cut -c1-3 test.txt
結果:
abc
abc
abc
abc
abc
技術分享圖片

打印前2個字符:

技術分享圖片
cut -c-2 test.txt
結果:
ab
ab
ab
ab
ab
技術分享圖片

打印從第5個字符開始到結尾:

技術分享圖片
cut -c5- test.txt
結果:
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
技術分享圖片

(轉)cut命令詳解