选取字符

-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选项。

例1

plaintext
echo "第一段:第二段:第三段:第四段" | cut -d ':' -f 2

输出

plaintext
第二段

例2

plaintext
echo "第一段:第二段:第三段:第四段" | cut -d ':' -f 1-2

输出

plaintext
第一段:第二段

例3

plaintext
echo "12345" | cut -c2

输出

plaintext
2

例4

plaintext
echo "12345" | cut -c2-4

输出

plaintext
234

先选区 再选字符

plaintext
TEXT=echo "abc/def/ghi/jkl/mno" | cut -d '/' -f 2)
输出:def
RESULT=$(echo ${TEXT} | cut -c3)
输出:f