关注IT专业技能,持续提升竞争力。

Linux cut 命令

Linux 仙人球 2274℃ 0评论

NAME
cut – remove sections from each line of files(移除每行上的部分内容)

SYNOPSIS
cut OPTION… [FILE]…

DESCRIPTION
Print selected parts of lines from each FILE to standard output.

-b, –bytes=LIST 以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志

-c, –characters=LIST 以字符为单位进行分割。

-d, –delimiter=DELIM 自定义分隔符,默认为制表符

-f, –fields=LIST 与-d一起使用,指定显示哪个区域,默认分割是tab分割。

-n 取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除

–complement 补充所选择的这组字节、字符或字段

-s, –only-delimited 在-f参数中不输出没有域分割符的行,默认是tab,肯定就是把那些非tab分割的去掉了

范围的表示方法:
N
只有第N项

N-
从第N项一直到行尾

N-M
从第N项到第M项(包括M)

-M
从一行的开始到第M项(包括M)


从一行的开始到结束的所有项

通过上面的主要参数我们可以看到:cut命令主要是接受三个定位方法:

第一,字节(bytes),用选项-b,例如:

抽取第三个字节:

抽取第3、4、5、8个字节:这儿是有顺序的,cut -b 3-5,8和cut -b 8,3-5的结果是一样的

抽取第3到最后的字节:

抽取前三个字节(下面的两种写法也一样):

第二,字符(characters),用选项-c,例如:

抽取前三个字符:

第三,域(fields),用选项-f

下面的是全部是用冒号分割的,所以可以用域:

下面的文件,前三行是用tab分割,最后一行是用空格分割

我们对其操作,由于默认是tab,所以把最后一行给删掉了:

我们对其加一参数:

最后一行是用空格分割的,所以不符合要求,删除了
去掉-s后,把最后一行显示出来,由于他不是tab分割,所以显示的和上面三行不同:

我们吧默认的tab分割符换成空格,然后就可以很明显的看出来了:

如果上面的命令再加上-s,结果如何,想必大家都懂了,我不过多废话了。

转载请注明:V-Lover » Linux cut 命令

喜欢 (1)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址