linux/unix 中cut命令應用舉例

Linux/Unix中的cut命令用來從每一行文本中選擇一部分,通過指定分隔符,可以選出指定的某些行或者列,也可以選出某個範圍的字符。


下面的所有例子都是基於file.txt文件,文件內容可通過cat命令查看:

> cat file.txt
unix or linux os
is unix good os
is linux good os

1.  輸出指定位置的字符內容

通過-c選項可以指定要選擇輸出的文本字節位置

cut -c4 file.txt
x
u
l

上例將所有行的第四個字符打印出來。

通過以逗號來分割多個整數,也可以打印多個位置的文本

cut -c4,6 file.txt
xo
ui
ln

上述命令將每一行的第四個和第六個字符打印出來。


2. 打印連續範圍的字符內容

通過-c選項,短橫線連接兩個整數,就可以將某個連續範圍的字符打印出來。

cut -c4-7 file.txt
x or
unix
linu

上述命令將第四個到第七個字符打印出來,注意是閉區間。


如果不指定起始位置,則從頭開始輸出,如下例:

cut -c-6 file.txt
unix o
is uni
is lin

將每一行的前六個字符都打印出來。


類似的,如果不指定結束位置,則將從起始位置到行末的所有文本都打印出來,如下例:

cut -c10- file.txt
inux os
ood os
good os

如果起始位置和結束位置都沒有指定,則整行都會被打印出來。

cut -c- file.txt

3. 通過分隔符來輸出指定字段

就像awk命令一樣,可以通過-d選項指定每一行文本的分隔符,然後再用-f選項指定要抽取哪些字段作爲最終的輸出結果。

cut -d' ' -f2 file.txt
or
unix
linux
上述命令定義空格爲一行的分隔符,並將每一行的第二個字段打印出來。


類似於上面的情形,在-f選項中可以指定若干個離散的數字,會將這些字段打印出來:

cut -d' ' -f2,3 file.txt
or linux
unix good
linux good

上例將第二個字段和第三個字段打印出來。


注:如果指定的分隔符不存在,會將整行內容打印出來。


4. 通過分隔符輸出連續範圍的字段內容

在-f選項中可以指定一個起始範圍和結束範圍

cut -d' ' -f1-3 file.txt

上述命令將第一個字段、第二個字段、第三個字段的內容都打印出來。


不指定起始位置,則默認從頭開始

cut -d' ' -f-3 file.txt
上述命令將前三個字段都打印出來


不指定結束位置,則默認到每一行的末尾

cut -d' ' -f2- file.txt

上述命令將第二字端到末尾的所有內容打印出來

5. 用cut命令來打印/etc/passwd文件的內容


文件/etc/passwd的內容是通過‘:’分隔的,因此可用如下命令:

cut -d':' -f1 /etc/passwd

6. 輸入文件的內容如下
> cat filenames.txt
logfile.dat
sum.pl
add_int.sh


通過cut命令來打印出‘.’後面的內容,可先通過rev命令將文本內容翻轉。

rev filenames.txt | cut -d'.' -f1



ps:以上內容翻譯自 http://www.folkstalk.com/2012/02/cut-command-in-unix-linux-examples.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章