每天一個 Linux 命令:cut 命令

1. 命令簡介

cut 是一個選取命令,以行爲單位,選擇性輸出符合條件的內容到標準輸出。

cut 命令主要用途有兩個,其一是用來顯示文件的內容,它依次讀取所指明的文件列表,將它們的內容輸出到標準輸出上;其二是連接兩個或多個文件,如 cut f1 f2 > f3 將把文件 f1 和 f2 的內容合併起來,然後通過輸出重定向符 > 的作用,將它們放入文件 f3 中。

2. 命令格式

cut OPTION... [FILE]...

在沒有提供文件或文件是 - 的情況下,cut 從標準輸入讀取內容。

  1. 選項說明 =======

注意,長選項的強制性參數對於短選項也是強制的。

-b, --bytes=LIST
 設置輸出的字節數或範圍
-c, --characters=LIST
 設置輸出的字符數或範圍
-d, --delimiter=DELIM
 指定列(或字段)的分隔字符。默認分隔符是製表符 Tab。只能和 -f 選項一起使用
-f, --fields=LIST
 設置輸出字段,默認字段分隔符是空格。-f 會打印不包含分隔符的行,除非指定了 -s 選項
-n
 與 -b 選項連用,不分割多字節字符
--complement
 反向選擇字節、字符或字段
-s, --only-delimited
 若行沒有分隔符,則不顯示該行。此選項只能和 -f 選項一起使用
--output-delimiter=STRING
 使用字符串作爲輸出分隔符,默認是輸入分隔符
-z, --zero-terminated
 行分隔符是 NUL,而不是 LF
--help
 顯示幫助信息並退出
--version
 顯示版本信息並退出

當使用 -b、-c 或 -f 選項時,LIST 由一個範圍(range)或逗號隔開的多個範圍組成。範圍的表示形式有:

N
    第 N 個字節、字符或字段。N 從 1 開始計數 
N-
    從第 N 個字節、字符或字段直至行尾 
N-M
 從第 N 到第 M(包括 M)個字節、字符或字段 
-M
 從第 1 到第 M(幷包 M)個字節、字符或字段

4. 常用示例

首先給出用於測試的本文件 testfile,其內容如下:

hello world
i am lvlv
i like linux

(1)以字符爲單位輸出指定範圍的字符。使用 cut 命令選擇第 3 到第 5 個字符輸出:

cut -c 3-5 testfile
llo
am 
lik

如果沒有指定結束字符的位置,即cut \-c 3- testfile,則輸出第三個字符到最後一個字符。同樣我們可以使用字節爲單位來進行,如果文本文件是單字節編碼的字符,那麼cut \-b 3-5 testfile等同於cut \-c 3-5 testfile

(2)以字段爲單位輸出指定字段。輸出第二列和第三列的內容:

cut -d " " -f 1  testfile
world
am lvlv
like linux

注意,因爲第一行沒有第三列,所以輸出爲空。

(3)選項提取指定字段之外的列。輸出第一列之外的內容:

cut -d " " -f 1 --complement testfile
world
am lvlv
like linux

參考文獻

[1] cut(1) manual

[2] Linux 命令大全. cut 命令

轉自:戀貓大鯉魚

https://dablelv.blog.csdn.net/article/details/77151267

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Iu3vg4Mtlg6AHw0PWeYeTA