Linux 七 文本处理

(1)文件浏览

  • cat 查看文件内容
  • more 以翻页形式查看文件内容(只能向下翻页)
  • less 以翻页形式查看文件内容(可上下翻页)
  • head 查看文件的开始10行(或指定行数)
  • tail 查看文件的结束10行(或指定行数)

(2)基于关键字搜索

  • 命令grep用以基于关键字搜索文本(可以是文件,也可以是命令输出的文本)
    • grep ‘linuxcast’ /etc/passwd (在该文件里查找包含linuxcast的行)
    • find / -user linuxcast | grep Video (在根目录下查找所有属于user用户的文件,并在查找结果中查找包含Video关键字的行)
    • -i 在搜索时忽略大小写
    • -n 显示结果所在的行数(在文件中查找)
    • -v 输出不带关键字的行
    • -Ax 输出关键字所在行及之后的x行(x为一数字)
    • -Bx 输出关键字所在行及之前的x行(x为一数字)
    • 注意:grep的功能远不止于此。

(3)基于列处理文本

  • 命令cut用以基于列处理文本内容
  • cut -d: -f1 /etc/passwd (对于文本passwd中的内容按:切割,并输出第1列)
  • grep linuxcast /etc/passwd | cut -d: -f3 (在passwd中查找包含linuxcast的行,并按:切割,输出第3列)
    • -d 指定分割字符(默认是TAB)
    • -f 指定输出的列号
    • -c 基于字符进行切割(cut -c2-6 /etc/passwd 输出passwd每行中的第2到第6个字符)

(4)文本统计

  • 命令wc用以统计文本信息(wordcount)
  • wc 文件名
    • -l 只统计行数(line)
    • -w 只统计单词数(word)
    • -c 只统计字节数
    • -m 只统计字符数

(5)文本排序

  • 命令sort用以对文本内容进行排序
  • sort 文件名
    • -r 倒序排序
    • -n 基于指定数字进行排序
    • -f 忽略大小写
    • -u 删除重复行
    • -t c 使用c作为分隔符分割为列进行排序
    • -k x 当进行基于指定字符分割为列的排序时,指定基于哪个列排序

(6)删除重复行

  • sort -u 可以删除重复行
  • uniq 可以用于删除重的相邻行(只能删除相邻的重复行)

(7)文本比较

  • 命令diff用以比较两个文件的区别
  • diff linuxcast linuxcast-new
    • -i 忽略大小写
    • -b 忽略空格数量的改变
    • -u 统一显示比较信息(一般用于生成patch文件,补丁文件)
      diff -u linuxcast linuxcast-new >final.patch

(8)处理文本内容

  • 命令tr用以处理文本内容
    • 删除关键字 tr -d ‘TMD’ < linuxcast (注意,tr只接收文件流,所以需要使用重定向符号,将linuxcast文件重定向)
    • 转换大小写 tr ‘a-z’ ‘A-Z’ < linuxcast

(9)搜索替换

  • 命令sed用以搜索并替换文本
  • sed ‘s/linux/unix/g’ 文件名 (”中为正则表达式,搜索并替换文件中的linux为unix,/g意思是如果一行中有多处,都替换为unix)
  • sed ‘1,50s/linux/unix/g’ 文件名 (对指定的1-50行进行搜索并替换操作)
  • sed -e ‘s/linux/unix/g’ -e ‘s/nash/nash_su/g’ 文件名 (使用-e可指定多个替换规则 )
  • sed -f sededit linuxcast (将命令存在sededit文件中,然后用命令调用这个文件即可)

注意:所有的Shell命令,都可以写在脚本中使用!!

你可能感兴趣的:(Linux基础)