字符截取命令-cut命令

grep命令是在文件或者搜索结果中提取行的

而cut命令则是用来提取列的。

有了行和列,我们就可以在文件中准确的提取到一个字符

cut命令默认是根据制表符为分割符来提取字段的


cut命令格式:

cut 选项 文件
选项:
-f 指定提取的列
-d 指定分割符

我们写个文件,文件内容如下:

注意,每个列之间都是制表符

现在我们提取第二列NAME

cut -f 2 test.txt

接下来在/etc/passwd文件中提取第一列用户名,则需要使用:作为分割符

cut -d ":" -f 1 /etc/passwd

一个实例演示

我么新建几个用户:user1,user2,user3,user4

我们现在要提取这几个用户,该如何写命令呢?

cat /etc/passwd |grep /bin/bash |grep -v root |cut -d ":" -f 1 

grep -v 的意思是排除root

可以看到,我们已经提取出了所有的除了root以外的用户

cut的局限性

cut的默认分割符是制表符,虽然可以指定分割符,但是在一些文档或者输入结果中会用到空格。

比如:

df -h

第一列和第二列之间不是制表符,是一些空格。
这时候要想按照空格输入,就必须数有几个空格,这是不现实的。

这就是cut命令的缺点,会用到awk解决这个问题