cut命令学习
发布于 2008-01-23 10:35
阅读:89,009
评论:0
标签:
cut
linux
链接:http://www.ifpubs.com/books/aix52/cut.htm
cut命令用途:从文件的每个行中写出选定的字节、字符或字段。
语法:
以下是引用片段: cut { -b List [ -n ] | -c List | -f List [ -s ] [ -d Character ] } [ File ... ] |
必须指定 -b、-c 或 -f 标志之一。List 参数为一个以逗号分隔、以空格分隔或连字符分隔的整数的列表(顺序递增)。连字符分隔符表示范围。以下条目是 List 参数的一些示例,它可以用来指代字节、字符或字段:
以下是引用片段: 1,4,7 1-3,8 -5,10 3- |
其中 -5 为从第一个到第五个的简写形式,3- 为从第三个到最后一个的简写形式。
参数:
以下是引用片段:
-b List 指定字节位置。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 -c List 指定字符位置。例如,如果您指定 -c 1-72,cut 命令将写出文件每一行的头 72 个字符。 -d Character 使用 Character 变量指定的字符作为指定 -f 标志时的字段定界符。您必须在对 shell 有特殊意义的字符(比如空格字符)上加上引号。 -f List 指定文件中设想被定界符(缺省情况下为制表符)隔开的字段的列表。例如,如果您指定 -f 1,7,cut 命令将仅写出每个行的第一和第七个字段。如果行中不包含字段定界符,cut 命令将通过它们而不对其进行任何操作(对表格的副标题有用),除非指定了 -s 标志。 -n 取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除。 -s 取消不包含定界符的行。仅和 -f 标志一起使用。 |
该命令返回以下退出值:
以下是引用片段: 0 所有输入文件被成功输出。 >0 发生一个错误。 |
遇到的例子:找出服务器的ip地址。
在FreeBSD中:
以下是引用片段: /sbin/ifconfig | grep "inet 172" | cut -d " " -f2 |
其中的"inet 172"为显示ip那一行的一个标志,目的是取出这一行。
在CentOS中:
以下是引用片段: /sbin/ifconfig | grep "inet addr:10.55" | cut -d ":" -f 2 | cut -d " " -f 1 |
同上,"inet addr:10.55"目的是取出这一行。这个使用两次cut,因为偶使用一次时死活取不出来,晕死。
可能根据自己的情况,上面的数字需要自己确定。
注:使用“-d”参数时,需要注意只能是单个字符。否则会报错:
以下是引用片段: cut: the delimiter must be a single character |