1. 程式人生 > >第十七章 按列切分文件字段工具:cut命令

第十七章 按列切分文件字段工具:cut命令

con 默認 ont del int ESS cat 一是 合並

第十七章 按列切分文件字段工具:cut命令

名詞解釋

cut 命令 用來顯示行中的指定部分內容,刪除文件中指定字段。cut經常用來顯示文件的內容,類似於type命令。

說明:該命令有兩項功能,其一是用來顯示文件的內容,它依次讀取由參數file所指明的文件,將它們的內容輸出到標準輸出上;其二是連接兩個或多個文件,如cut f1 f2 > f3 將把文件f1和f2的內容合並起來,然後通過輸出重定向符“>”的作用,將他們放入文件f3中。

語法

cut (選項) (參數)

選項

  • -b :僅顯示行中指定直接範圍的內容;

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

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

  • -f :顯示指定字段的內容;select only these fields; also print any line that contains no delimiter character, unless the -s option is specified

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

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

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

  • -s, --only-delimited do not print lines not containing delimiters

    ? --output-delimiter=STRING use STRING as the output delimiter

  • --help:顯示幫助信息

  • --version:顯示版本信息

    ?

參數

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

實例

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

[root@ceshi cut]# cat test.txt 
No      Name    Mark    Percent
01      tom     69      91
02      jack    71      87
03      abc     68      98

註意:這裏的分隔符是一個tab,而不是空格;當然也可以用空格,那麽在使用參數提取字段的時候需要指明字段分隔符是空格。

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

[root@ceshi cut]# cut -f 1 test.txt 
No
01
02
03

使用-d選項 指定字段分隔符
如果分隔符是空格如下:
[root@ceshi cut]# cat test2.txt 
No Name Mark Percent
01 tom 69 91
02 jack 71 87
03 abc 68 98

[root@ceshi cut]# cut -d " " -f 1 test2.txt 
No
01
02
03

利用-f選項提取指定範圍字段:

[root@ceshi cut]# cut -f 1,2 test.txt             
No      Name
01      tom
02      jack
03      abc

--complement選項提取指定字段之外的列:

#打印除了第二列之外的列
[root@ceshi cut]# cut -f 2 --complement test.txt 
No      Mark    Percent
01      69      91
02      71      87
03      68      98

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

cut命令 可以將一串字符作為列來顯示,字符字段的記法:

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

上面是記法,結合下面選項:

  • -b :表示字節
  • -c :表示字符
  • -f :表示定義字段

示例

[root@ceshi cut]# cat abc.txt 
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz

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

[root@ceshi cut]# cut -c 1-3 abc.txt 
abc
abc
abc
abc
abc

打印前兩個字符:

[root@ceshi cut]# cut -c 1-2 abc.txt 
ab
ab
ab
ab
ab

或者
[root@ceshi cut]# cut -c -2 abc.txt  
ab
ab
ab
ab
ab

打印從第5個字節到結尾:

[root@ceshi cut]#  cut -c 5- abc.txt 
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz

第十七章 按列切分文件字段工具:cut命令