linux命令_文本处理_cut_分隔行并显示
cut(remove sections from each line of files)
以行为单位,将被选中的部分显示到标准输出,不改变原文件的内容。
如果没有输入文件或输入文件为-,则从标准输入读入。
格式
cut OPTION... [FILE]...
参数说明
- -b,--bytes=LIST 只选中指定字节的内容
- -c,--characters=LIST 只选中指定的字符集
- -d,--delimiter=DELIM 指定代替TAB的分隔符(分隔之后的每一个单元称为一个字段)
- -f,--fields=LIST 指定需要显示的内容,一般会打印出没有被分割的行,除非使用了-s选项
- -n 与-b连用,不分割多字节的字符
- --complement 补全字节,字符或者字段的集合(不显示选中的内容,显示除去选中内容之后的内容)
- -s,--only-delimited 不打印不包含分割符的行
- --output-delimiter=STRING 使用字符串STRING代替输入的分隔符作为输出分隔符
-b,-c,-f中显示范围可以用以下格式指定:
- N 第N个字节,字符或者字段,N从1开始计数
- N- 从第N个字节,字符或者字段开始,知道行尾结束
- N-M 从第N个直到第M个(包括)字节,字符或字段
- -M 从第一个到第M个(包括)字节,字符或字段
使用实例
-
读取字节,字符或者字段
[fish@localhost ~]$ echo 'abc' | cut -b2 b [fish@localhost ~]$ echo 'abc' | cut -c 2 b [fish@localhost ~]$ echo '我在学习' | cut -b2 # 汉字为三个字节,出现乱码 ▒ [fish@localhost ~]$ echo '我在学习' | cut -b2 -n # -n 不分割多字节的字符,-nb类似于-c 在 [fish@localhost ~]$ echo '我在学习' | cut -b 4-6 在 [fish@localhost ~]$ echo '我在学习' | cut -c 2 在 [fish@localhost ~]$ echo '我在学习' | cut -b -6 # 从行首到第6个字节(包括) 我在 [fish@localhost ~]$ echo '我在学习' | cut -b 7- # 从第7个(包括)字节到行尾 学习 [fish@localhost ~]$ echo '我在学习' | cut -c 2-3 # 从第2个字(包括)到第三个字(包括) 在学 [fish@localhost ~]$ echo 'a b c' | cut -d' ' -f2 # 空格为分隔符 b [fish@localhost ~]$ echo '我#在#学#习' | cut -d '#' -f2 # [#]号为分隔符 在 [fish@localhost ~]$ echo '我#在#学#习' | cut -d '#' -f2-4 # 连续显示的情况下会打印分隔符 在#学#习 [fish@localhost ~]$ # 将上面的分隔符替换为别的字符串并输出 [fish@localhost ~]$ echo '我#在#学#习' | cut -d '#' -f2-4 --output-delimiter='' 在学习 -
不显示选中的内容
[fish@localhost ~]$ echo 'abc' | cut -b2 b [fish@localhost ~]$ echo 'abc' | cut -b2 --complement ac [fish@localhost ~]$ echo '我在学习' | cut -b 7-9 学 [fish@localhost ~]$ echo '我在学习' | cut -b 7-9 --complement 我在习

浙公网安备 33010602011771号