cut
連接文件並打印到標準輸出設備上
補充說明
cut 命令 用來顯示行中的指定部分,刪除文件中指定字段。cut 經常用來顯示文件的內容,類似於 type 命令。
說明:該命令有兩項功能,其一是用來顯示文件的內容,它依次讀取由參數 file 所指 明的文件,將它們的內容輸出到標準輸出上;其二是連接兩個或多個文件,如cut fl f2 > f3
將把文件 fl 和 f2 的內容合併起來,然後通過輸出重定向符“>”的作用,將它們放入文件 f3 中。
當文件較大時,文本在屏幕上迅速閃過(滾屏),用戶往往看不清所顯示的內容。因此,一般用 more 等命令分屏顯示。爲了控制滾屏,可以按 Ctrl+S 鍵,停止滾屏;按 Ctrl+Q 鍵可以恢復滾屏。按 Ctrl+C(中斷)鍵可以終止該命令的執行,並且返回 Shell 提示符狀態。
語法
1cut(選項)(參數)
選項
1-b:僅顯示行中指定直接範圍的內容;
2-c:僅顯示行中指定範圍的字符;
3-d:指定字段的分隔符,默認的字段分隔符爲“TAB”;
4-f:顯示指定字段的內容;
5-n:與“-b”選項連用,不分割多字節字符;
6--complement:補足被選擇的字節、字符或字段;
7--out-delimiter= 字段分隔符:指定輸出內容是的字段分割符;
8--help:顯示指令的幫助信息;
9--version:顯示指令的版本信息。
參數
文件:指定要進行內容過濾的文件。
實例
例如有一個學生報表信息,包含 No、Name、Mark、Percent:
1[root@localhost text]# cat test.txt
2No Name Mark Percent
301 tom 69 91
402 jack 71 87
503 alex 68 98
使用 -f 選項提取指定字段(這裏的 f 參數可以簡單記憶爲 --fields
的縮寫):
1[root@localhost text]# cut -f 1 test.txt
2No
301
402
503
1[root@localhost text]# cut -f2,3 test.txt
2Name Mark
3tom 69
4jack 71
5alex 68
--complement 選項提取指定字段之外的列(打印除了第二列之外的列):
1[root@localhost text]# cut -f2 --complement test.txt
2No Mark Percent
301 69 91
402 71 87
503 68 98
使用 -d 選項指定字段分隔符:
1[root@localhost text]# cat test2.txt
2No;Name;Mark;Percent
301;tom;69;91
402;jack;71;87
503;alex;68;98
1[root@localhost text]# cut -f2 -d";" test2.txt
2Name
3tom
4jack
5alex
指定字段的字符或者字節範圍
cut 命令可以將一串字符作爲列來顯示,字符字段的記法:
- N- :從第 N 個字節、字符、字段到結尾;
- N-M :從第 N 個字節、字符、字段到第 M 個(包括 M 在內)字節、字符、字段;
- -M :從第 1 個字節、字符、字段到第 M 個(包括 M 在內)字節、字符、字段。
上面是記法,結合下面選項將摸個範圍的字節、字符指定爲字段:
- -b 表示字節;
- -c 表示字符;
- -f 表示定義字段。
示例
1[root@localhost text]# cat test.txt
2abcdefghijklmnopqrstuvwxyz
3abcdefghijklmnopqrstuvwxyz
4abcdefghijklmnopqrstuvwxyz
5abcdefghijklmnopqrstuvwxyz
6abcdefghijklmnopqrstuvwxyz
打印第 1 個到第 3 個字符:
1[root@localhost text]# cut -c1-3 test.txt
2abc
3abc
4abc
5abc
6abc
打印前 2 個字符:
1[root@localhost text]# cut -c-2 test.txt
2ab
3ab
4ab
5ab
6ab
打印從第 5 個字符開始到結尾:
1[root@localhost text]# cut -c5- test.txt
2efghijklmnopqrstuvwxyz
3efghijklmnopqrstuvwxyz
4efghijklmnopqrstuvwxyz
5efghijklmnopqrstuvwxyz
6efghijklmnopqrstuvwxyz
打印最後5個字符:
遺憾的是, cut
並沒有提供最後字符的支持. 不過我們可以通過字符串反轉來實現.
1[root@localhost text]# cat test.txt| rev | cut -c -5 | rev
2vwxyz
3vwxyz
4vwxyz
5vwxyz
6vwxyz
來源:https://github.com/jaywcjlove/linux-command
最後修改於: Wednesday, January 31, 2024
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。