使用cut選擇一行中的部分內容--用Enki學Linux系列(13)

    cut命令使我們“切出”一個文件中每行指定的部分。你既可以直接通過後接文件名來選取,也可以通過管道符選取其他程序的輸出。

    下面是一些基礎的例子


選取字符

    -c選項讓cut命令從它的輸入中選取指定的字符。看一下:

$ echo "one:two:three" | cut -c2
n
$ echo "one:two:three" | cut -c1-5
one:t
$

    這個例子中-c2是讓cut選取第二個字符而-c1-5是選取一個字符範圍(第一到第五)。

    也可以用,來選擇指定字符。例如,-c1,3,5會從輸入的每一行中選取第一、第三和第五個字符。


選取區域

我們也可以選取指定列或者區域。看一下:

$ echo "one:two:three" | cut -d":" -f1
one
$ echo "one:two:three" | cut -d":" -f2
two
$ echo "one:two:three" | cut -d":" -f1-2
one two
$

    -d":"選項讓cut選取以:字符結尾的區域。-f1讓cut選擇第一個區域(以:爲界),-f2選擇第二個區域,-f1-2是第一和第二區域。

    儘管默認cut假定輸入區域是以tab字符爲界的,我們還是可以不用-d只用-f選項。


實用的例子

    /etc/passwd文件包含了系統上每個用戶的信息,包括用戶名和家目錄。文件格式非常標準。下面的例子單獨會打印出系統上所有用戶的家目錄。

$ cut -d":" -f1,6 /etc/passwd

user1:/home/user1

user2:/home/user2

... etc. etc. ...

$

    /etc/passwd文件是由:界定區域的。

    第一個選取區域包含用戶名,第二個選取區域爲包含用戶家目錄的第六個區域.


原文鏈接


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