Skip to content

文本处理

数据流重定位

  • | 管道符,将管道左边命令的结果作为右边命令的输入
  • 比如 cat text 01. txt | grep xxx 等价于 grep xxx text 01. txt
  • 如查找文件 ls xx | grep xx
  • 嵌套使用 xx|xx|xx|... 依次向右传递

  • 重定向(通常用于输出到文件)

    • > 覆盖
    • >> 追加到末尾
    • 反向也可以 < <<
  • 重定向标准输出和标准错误

    • 重定向标准错误 2> file
    • 同时重定向输出和错误 &> file
  • 永久重定向 exec 1>somefile

常用命令

  • cut
    • 分割,部分显示 cut /etc/passwd -d ':' -f 1,6(根据: 分割,输出第 1,6 部分)
    • 部分输出:history | cut -c 8- (位置 8 及之后的数据)
  • sort
    • 反转排序 cat /etc/passwd | sort -r
    • 按照特定字段进行排序 cat /etc/passwd | sort -t':' -k 3
    • -n 按数字排序(默认为按字典序)
  • uniq

    • 只能去除连续的重复,因此通常先进行 sort
    • -dc , -D 输出重复的行
  • tr

    • 删除一段文本中的某些文字,或进行替换
    • -d 删除和 set1 匹配的字符echo 'hello shiyanlou' | tr -d 'olh'
    • -s 去除 set1 指定的在输入文本中连续并重复的字符,如去除连续的 l echo 'hello' | tr -s 'l'
    • 小写转化为大写 tr '[a-z]' '[A-Z]'
  • join

    • image.png|500
    • sudo join -t':' -1 4 /etc/passwd -2 3 /etc/group
  • paste

    • 简单的将多个文件合并,以 Tab 分割
    • -d 指定分隔符
    • -s 每个文件为一行
    • paste -d ':' file1 file2 file3
  • head 截取文件头部

    • 设置行数 head -3
  • tail 截取文件尾部