cut
的作用与awk一样,都是按照分隔符把每一行风格成几段,获取特定的段。
cut -f FIELD_POSISION [-d delimiterCharacter | -s] <FILE>...
cut -c CHARACTER_POSISION <FILE>...
cut -b BYTE_POSISION [-n] <FILE>...
-f
是field
的首字母,其值为从1
开始的整数,表示第几个field
。
-d
是delimiter
的首字母,其值为一个字符,表示要把每一行按照delimiter
分割为几个field
。如果没有指定该选项,默认是TAB
。
-s
的意思是,如果行中没有给定的delimiter
,该行被忽略。如果不指定该参数,就不忽略,将会打印出整行内容。
示例:
echo "ab:cd:ef:gh:mn:xy" | cut -d : -f 1
echo "ab:cd:ef:gh:mn:xy" | cut -d : -f 1,3
echo "ab:cd:ef:gh:mn:xy" | cut -d : -f 1-3,4-5
-c
是character
的首字母,其值为从1
开始的整数,表示第几个character
。
示例:
echo "abcdef" | cut -c 1
echo "abcdef" | cut -c 1,3
echo "abcdef" | cut -c 1-3,4-5
-b
是byte
的首字母,其值为从1
开始的整数,表示第几个byte
。
-n
是no
的首字母,表示不将多字节字符拆开。
示例:
echo "abcdef" | cut -b 1
echo "abcdef" | cut -b 1,3
echo "abcdef" | cut -b 1-3,4-5