Linux(入门基础):65---选取、排序管道命令(cut、grep、sort、uniq)

一、管道命令

1.概念

  • 管道命令是以|符号连接的命令使用到的命令
  • 格式:cmd1 | cmd2 | cmd3

2.注意事项

  • 管道命令只能处理前面传来为标准输出的信息,对于标准错误输出和其他类型的信息不起作用
  • |号前必须是可以产生标准输出数据的命令才行,|号后必须是可以接受标准输出的命令才行(less、more、head等都是)
  • 标准错误输出如何可以被管道命令使用:使用2>&1转换,让2>变为1>

二、选取命令:cut

1.功能

  • 先将数据进行分割,截取自己想要的数据

2.注意事项

  • 选取信息只能一行一行的取,不能整篇的截取
  • 常用在对一行数据进行分解的时候

3.格式

  • cut  -d  '分隔符'  -f  选取第几段
  • cut  -c  区间1-区间2

相关参数与选项

  • -d:后面接分割字符(分隔符是截取的数据中存在的),用于把数据分离。与if配合使用
  • -f:后面接数字。意思为获取-d参数分离出的数据的第几段.如果想要截取多段,每段数字用,隔开
  • -c:后面接一个字符区间,区间2可省略(省略后截取到末尾)

4.演示案例

①截取PATH变量内容

  • 以':'位分隔符,截取PATH变量中的第2部分

  • 如果想要截取PATH变量中的第2,3段:-f  2,3就行了

②截取变量内容

  • 去除前面的declare -x

  • 如果想要截取12-20之间的字符,-c 12-20就可以了

③截取用户名

  • 以空格为分隔符,得到第一部分

三、选取命令:grep

1.功能

  • cut是对一行进行切割,然后去除其中一部分。
  • grep是对一行进行分析,若有我们想要的,就将该行取出来。也可以得到去除我们想要的内容的其它内容

2.命令格式

  • grep  [参数]  [--color=auto]  '查找字符'  文件名

相关参数与选项

  • -a:将二进制文件以文本文件的形式查看
  • -c:计算出找到的'查找字符'的个数,总共有多少行(是行数,不是个数)
  • -i:忽略文件中的大小写
  • -n:顺便输出行号
  • -v:反向选择,即输出没有‘查找字符’的那一行
  • --color=auto:可以将找到的关键字部分加上颜色显示,这是默认的参数
  • -A:后面接数字。代表除了有查找字符的那一行外,前面多少行也显示出来(after)
  • -B:后面接数字。代表除了有查找字符的那一行外,后面多少行也显示出来(before)

3.注意事项

  • 在正则表达式中用到很多
  • 查找字符不是全字匹配

4.演示案例

  • 查找含有'boot'的行

  • 取出不包含'boot'的行

  • 取出'boot'的行并分割取出第一部分

四、排序命令:sort

1.功能

  • 对数据进行排序,以行为单位

2.命令格式

  • sort  [参数]  [文件/标准输入]

相关参数与选项

  • -f:忽略大小写的差异
  • -b:忽略最前面的空格字符
  • -M:以月份的名字来排序。例如:JAN、DEC等排序方法
  • -n:使用纯数字进行排序(因为sort默认以文字形式排序)
  • -r:反向排序
  • -u:就是uniq,相同的数据中,只列出一行
  • -t:后面跟分割字符,默认使用[Tab]来分割
  • -k:-t分割之后,选取第几部分来进行排序

3.注意事项

  • sort可以根据不同的数据形式来排序
  • 排序的字符与语系有关,因此排序前建议使用LANG=C来让语系统一

4.演示案例

  • /etc/passwd记录了个人账号信息。默认以开头字母排序

  • /etc/passwd内容是以:隔开的,我们以:分割每一行,然后取第三段进行排序

五、排序命令:uniq

1.功能

  • 以整行单位,先进行排序,排序之后,重复的行只显示行
  • 可以配合last命令查看登陆你记住的是哪些用户,登陆了多少次等...

2.命令格式

  • uniq  [参数]

相关参数

  • -i:排序忽略大小写
  • -c:显示次数。重复的显示总共有多少次(是行数不是个数)

3.注意事项

  •  

4.演示案例

  • 使用last将账号信息列出来,然后cut截取第一列并排序,每个账号只显示一种

  • 承上,我们想知道每个账号有几行(出现了几次),使用-c参数

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/88066090