Shell 脚本-管道命令(sort、uniq、tr、cut、eval)

常见的管道命令

 sort命令

  • Linux sort命令用于将文本文件内容加以排序
  • sort命令可针对文本文件的内容,以行为单位来排序
1 sort [选项]  参数

 常用选项

1 -f∶ 忽略大小写,会将小写字母都转换为大写字母来进行比较;
2 -b∶ 忽略每行前面的空格;
3 -n∶ 按照数字进行排序;
4 -r∶ 反向排序;
5 -u∶ 等同于uniq,表示相同的数据仅显示一行;
6 -t∶ 指定字段分隔符,默认使用 【Tab】键分隔;
7 -k∶ 指定排序字段;
8 -o <输出文件>∶ 将排序后的结果转存至指定文件;

 uniq命令

  • Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用
  • uniq 可检查文本文件中重复出现的行列
1 uniq [选项]  参数

 常用选项

1 -c∶ 进行计数,并删除文件中重复出现的行;
2 -d∶ 仅显示连续的重复行;
3 -u∶ 仅显示出现一次的行;

 tr命令

  • Linux tr 命令用于转换或删除文件中的字符
  • tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备

 常用选项和参数

1 -c∶ 保留字符集1的字符,其他的字符(也包括换行符\n)用字符集2替换
2 -d∶ 删除所有属于字符集1的字符
3 -s∶ 将重复出现的字符串压缩为一个字符串;用字符集2替换 字符集1
4 -t∶ 字符集2 替换 字符集1,不加选项和结果

 参数

  字符集1:指定要转换或删除的原字符集,当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集,但是执行删除操作时,不需要参数“字符集2”
  字符集2:指定要转换成的目标字符集

 使用tr对数组进行排序

  • 使用echo ${arr[*]}可以输出数组列表
  • 结合 | tr "  "  "\n" 可以将输出内容中的空格换成换行符
  • 然后在使用 | sort  -n对输出的内容进行按数值从小到大排序即可

 cut命令

  Linux cut命令用于显示每行从开头算起 num1 到 num2 的文字
  

  使用说明:

  • cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出
  • 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一
1 cut [选项]  参数

 常用选项

1 -f∶ 通过指定哪一个字段进行提取。cut命令使用"TAB"作为默认的字段分隔符
2 -d∶ “TAB"是默认的分隔符,使用此选项可以更改为其他的分隔符
3 - -complement∶ 此选项用于排除所指定的字段
4 - -output-delimiter∶ 更改输出内容的分隔符

 

上一篇:8月12日模拟赛题解


下一篇:使用帮助命令man和help的区别以及建议