簡明Linux命令行筆記:cut


從輸入行中選取字符或者字段

cut [options] [file-list]

 

cut 從輸入行中選取字符或者字段,並將他們寫到標准輸出,字符和字段從1開始編號

 

參數

file-list 是文件的路徑名列表,如果沒有指定參數,或者使用連字符(-)來代替文件名,那么cut將從標准輸入來獲取輸入

 

選項

-c clist                選取由clist中的列號指定的字符。clist的值為列號(多個值用逗號分隔)或者列范圍,列范圍用兩個列號指定,

                          中間用連字符隔開。范圍-n表示從第1~n列。n-表示從第n列到行尾。n-m表示從第n~m列

-d dchar              將dchar作為輸入字段的分割符,默認分隔符為制表符,特殊情況下可使用轉義字符

-f flist                  選擇在flist中指定的字段。flist的值為字段號(多個值用逗號分隔)或者字段的范圍。字段范圍可以用兩個字段號指定,

                          中間用連字符隔開。范圍-n表示從第1~n個字段,范圍n-表示從第n個字段到行尾,n-m表示從第n~m個字段。默認字

                          段的分隔符為制表符,也可以使用-d選項來指定分割符

-s                       僅打印包含分割符的行,如果沒有此選項,則打印不包含分割符的行

 

示例

先看看原文件

$ cat a.txt
1111 2222 3333 4444 5555
1111 2222 3333 4444 5555
1111 2222 3333 4444 5555
1111 2222 3333 4444 5555
------------------------

 

cut -c 列范圍

$ cut -c1-4 a.txt
1111
1111
1111
1111
----

指定列范圍打印字符

 

cut -c 列號

$ cut -c1,6 a.txt
12
12
12
12
--

指定列號打印字符

 

cut -d -f

$ cut -d' ' -f1-3 a.txt
1111 2222 3333
1111 2222 3333
1111 2222 3333
1111 2222 3333
------------------------

指定分隔符和字段范圍打印字符,此處文本文件中默認以space作為分隔符,最底下沒有分隔符,所以全部打印

還可用cut -d -fn,n指定字段號

 

cut -s -d -f

$ cut -s -d' ' -f1-3 a.txt
1111 2222 3333
1111 2222 3333
1111 2222 3333
1111 2222 3333

使用-s選項打印包含分隔符的行,最末行沒有分隔符,所以不打印

 

Tips

雖然cut在功能上有所限制,但是它能較快的分割列和字段,有時能與paste配合使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM