cut

  1. cut 用来提取文本中的某一部分文本
  2. 语法:cut [选项] 文件名
    • -f 列号,用来指定要提取的列
    • -d 分隔符,按照指定分隔符分割列,默认分隔符是TAB制表符
  3. 示例代码:
    # 提取用户名和它使用的 shell
    # 分隔符是 :
    # 提取第 1 列、第 7 列
    cat /etc/passwd | cut -f 1,7 -d :
    

printf

  1. 按规定格式输出

  2. 语法:printf 输出类型 输出内容

    参数 含义
    %ns 输出字符串,n是数字指代输出几个字符
    %ni 输出整数,n是指输出几个数字
    %m.nf 输出浮点数,m和n是数字,指代输出的整数位数和小数位数,如%6.2f代表输出6位位,2位小数,4位整数
  3. 示例代码:

    df -h
    # 输出以下信息,字段之间间隔大小不一
    # Filesystem                             Size   Used  Avail Capacity iused     ifree %iused  Mounted on
    # /dev/disk3s1s1                        228Gi  8.9Gi   15Gi    37%  355384 161486880    0%   /
    # devfs                                 209Ki  209Ki    0Bi   100%     724         0  100%   /dev
    # ...
    
    printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t \n" $(df -h | grep /System) | cut -f 1,5
    # Filesystem    Capacity 
    # /dev/disk3s1s1    37%  
    # devfs   100%
    # ...
    

awk

  1. 语法:awk '条件1{动作1} 条件2{动作2}...' 文件名

  2. 条件(Pattern)

    • 一般使用关系表达式作为条件
    • x > 10 判断变量 x 是否大于 10
    • x >=10 大于等于
    • x <=10 小于等于
  3. 动作(Action):格式化输出

  4. $0 整行,$1 第一列…

  1. begin end

    • awk 可以正确截取制表符和空格
    • begin 在所有的输出之前打印
    • end 在所有的输出之后打印
    txt
    SHELL
    1
    2
    
    awk 'BEGIN{print "开始"} {print $1} END{print "结束"}' number.txt 
    # 开始
    # 1
    # 2
    # 结束
    
  2. FS

    • Field Separator,字段分隔符
    awk 'BEGIN{FS=":"}{print $1"\t"$2}' /etc/passwd
    
  3. 声明变量

    TXT
    SHELL
    1
    2
    3
    
    awk 'BEGIN{sum=0}{sum=sum+$1}END{print sum}' numbers.txt 
    # 6
    
  4. 多条件

    TXT
    SHELL
    zhangsan 91
    li 81
    wangwu 71
    
    awk '$2>90{print $1"\t优秀"}$2<80{print $1"\t良好"}' score.txt
    # zhangsan   优秀
    # wangwu     良好
    
  5. NR

    • NR,表示 awk 开始执行程序后所读取的数据行数
      awk '{print NR,$0}' score.txt
      # 1 zhangsan 91
      # 2 li 81
      # 3 wangwu 71
      
  6. OFS

    • OFS Out of Field Separator,输出字段分隔符
      echo "i love you" | awk 'BEGIN{ FS=" ";OFS="-" }{print $1,$2,$3}'
      # i-love-you
      

sed

  • sed 是一个轻量级编辑器,主要用来对数据进行选取、替换、替换和新增操作

  • 语法:sed [选项] ‘[动作]’ 文件名

  • 所有的动作都必须用单号号括起来

  • 类型类似于批量 vi 操作

  1. 动作

    参数 含义 示例
    a 追加,在每一行或者指定行下面添加一行或多行 sed ‘1a newline’ score.txt
    c 行替换,用c后面的字符串替换掉原始整个数据行 sed ‘c newline’ score.txt
    s 字符串替换,用一个字符串替换另外一个字符串,格式为 “行范围s/旧字符串/新字符串/g” sed ‘3s/lisi/lisisi/g’ score.txt
    i 插入,在当前行插入一行或多行 sed ‘1i newline’ score.txt
    d 删除指定的行 sed ‘1,2d’ score.txt
    p 打印,输出指定的行 sed -n ‘2p’ score.txt
  2. 选项

    参数 含义 示例
    -n 一般sed命令会把所有的数据都输出到屏幕上,如果加入此选项则只会把处理过的行输出到屏幕上 sed -n ‘2p’ score.txt
    -e 允许对输入数据应用多条sed编辑命令 sed -e ‘s/91/92/g;s/81/82/g’ score.txt
    -i 用sed的修改直接修改编辑的文件,而不是在屏幕上输出 sed -i ‘1i newline’ score.txt

sort

  1. 语法:sort [选项] 文件名

  2. 选项

    参数 含义 示例
    -f 忽略大小写 sort -f -t “:” -n -k 5,5 /etc/passwd
    -n 以数值型进行排序,默认使用字符串顺序 sort -t “:” -n -k 3,3 /etc/passwd
    -r 反向排序,默认从小到大 sort -r /etc/passwd
    -t 指定分割符,默认分割符是制表符 sort -t “:” -k 3,3 /etc/passwd
    -k n[,m] 按照指定的字段范围排序。从第n个字段开始,到第m个字段结束,默认是到行尾 sort -t “:” -k 3,3 /etc/passwd
打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于前端开发的技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程。

了解更多

目录

  1. 1. cut
  2. 2. printf
  3. 3. awk
  4. 4. sed
  5. 5. sort