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文件是由:界定区域的。
第一个选取区域包含用户名,第二个选取区域为包含用户家目录的第六个区域.