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文件是由:界定区域的。

    第一个选取区域包含用户名,第二个选取区域为包含用户家目录的第六个区域.


原文链接