Linux基本功七:Linux对文本的操作命令及正则表达式

来源:互联网 发布:浙江大学网络 编辑:程序博客网 时间:2024/06/05 16:58

正则表达式--能更准确的找出我们需要的数据信息。
1、对文本文件的操作
 diff - 报告文件差异  diff和patch是配套使用的,和updatedb与locate一样;
        aa.patch可以是两版软件的差异文件;内核的大小约为:300M
 uniq -去除文件相邻的重复行
 cut  -只显示文件中的某一列
 sort -按序重排
 wc   -统计文件的 行、词、字数
  .   任意一个字符
  *  任意多个字符
  a*   任意多个a,可以是0
  .*   任意多个任意字符
  \. \*   脱义字符
  ^hi   以hi开头   一行
   grep '^shrek'    以shrek开头
  shrek$   以shrek结尾  一行


   grep 'shrek$'  以shrek结尾
  \<s..k\>单词以s开头,以k结尾,中间有任意两个字符;
   grep 's.*k' /etc/passwd   以s开头,中间任意个字符,然后以K结尾的字符显示出来;
  \<aaa   单词单独以aaa开头
  a\{18\}   a重复18次;
    i18n   把所有国家的语言排一下,同一管理,命令如下:
    grep '^i.\{18\}n$' /etc/share/dict/words
查看世界上最长的单词:

  vi /usr/share/dict/words   grep '.\{40,50\}'  !$  字符出现的次数为40-50之间
结果为:pneumomoultramicroscopicsilicovvolcanocomiosis //表示尘肺病,是英语中最长的单词,46个!
 grep '.\{40\}'  只出现40次  grep '.\{40,\}' 出现40次以上  grep '^[abc]' /etc/passwd  以a或者b或者c开头的显示  grep '^[^a-s]' /etc/passwd  不是以a-s开始 的行
 

删除一些配置文件的#开头和空格

   sed -e '/^#/d' -e '/^$/d' /etc/squid/squid.conf   grep -v '^#' /etc/squid/squid.conf |grep  -v '^$' |wc -l
 vi  %s/old/new/g   将全文的old替换为new;
 cat  全部显示
 more  只能向下看
 less  可以上下翻滚看
 head  默认头10行
 tail  末尾10行 
 tail -f /var/log/message  可以检测日志信息;如果我们重启serivce httpd restart ,这里就会实时显示信息;
 
 cut -d: -f2-4 /etc/passwd | grep sherk  第2-4段显示出来
 cut -c1-5 /etc/passwd  将第1-5个字符显示
 将第三列按顺序来排序:
 sort -t: +2 -n /etc/passwd
 -n 以数字显示
 -r 反向排序
 -t:以:作为分隔符
 +3 从第三列开始排序 
 du | sort -n -r   按文件大小反向排序; du | sort -n -r | head -n 3 | cut -f2 
 wc -l -w -c 行,单词,字符
 统计/etc/passwd中用的shell的种类数并显示:
 cut -d: -f7 /etc/passwd | sort | uniq | wc -l