Linux的cut(剪切)命令与实用举例

Linux的cut命令用于提取文件内容。文本文件不能像数据库一样行/列操作,有些时候我们只需要一列的数据。以分割符基础上剪切标识的列(如:冒号“:”,分号“;”,逗号“,”等)。 在这个例子中,我们正在获取 /etc/passwd 文件 。所有的行存储如下面冒号格式(:)分隔,像的下方例子。我们使用 -f 指定行数和 -d 为分隔符(分隔符)。 按照上面的截图,这个文件有7个字段。Cut 还支持字符为基础使用 -c 命令提取值。让我们阅读下面的例子,为此我使用  /etc/passwd 文件来测试。

1.选择单个字段从文件

例如,我们需要从我们的 /etc/passwd 文件中取出用户名列表。我们知道,第一列存储的用户名,整个文件是由冒号(:)分隔。
# cut -d":" -f1  < /etc/passwd

root
bin
daemon
adm
lp
sync
shutdown
halt
  我们也可以使用管道“|”传递文件内容输入到 cut 命令,如下图所示
# cat  /etc/passwd | cut -d":" -f1

2.选择文件中的多个列

我们可以指定多个字段名,如下面的例子将显示第1,2,7 列字段。
# cut -d":" -f1,2,7 < /etc/passwd

root:x:/bin/bash
bin:x:/sbin/nologin
daemon:x:/sbin/nologin
adm:x:/sbin/nologin
lp:x:/sbin/nologin
sync:x:/bin/sync
shutdown:x:/sbin/shutdown
halt:x:/sbin/halt
mail:x:/sbin/nologin
uucp:x:/sbin/nologin
我们也可以指定列的连字符范围内( - )的字段,以及两个选项的在一起,就像下面的例子命令。
    • 在这里,第一个命令将选择第1,2,3 ,4 列的字段。
    • 第二个命令将选择第3,4,5列的字段。
    • 最后命令将显示第2,3,4,6,10列的字段。
      # cut -d":" -f1-4 < /etc/passwd
      # cut -d":" -f3-5 < /etc/passwd
      # cut -d":" -f2-4,6,10 < /etc/passwd
  要获得所有列的值,除了使用下面的命令。例如,如果我们需要选择所有列,但要第6列。
# cut -d":" --complement -s -f6 < /etc/passwd

3.选择单个字符的从文件

除了字段我们也可以从文件中取单个字符选择值,而使用字符我们并不需要指定分割符。
# cut -c1 < /etc/passwd

r
b
d
a
l
s
s
同样的字段,我们也可以指定多个逗号分隔的字符或字符范围。
# cut -c1,2,3,6,7 < /etc/passwd
# cut -c1-3,6,7 < /etc/passwd
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏