第八節 Shell文本操作

一.find 查找命令的使用

  • 1.find . -name "*.txt"
    在當前目錄下找以txt結尾的文件
  • 2.find . -name "[a-z]*"
    在當前目錄下找以所有字母開頭的文件
  • 3.find /etc -name "host*"
    在/etc目錄下找以host開頭的文件
  • 4.find . -perm 755
    在當前目錄下找屬性為755的文件
  • 5.find -user root
    在當前目錄下找屬主為root的文件
  • 6.find /var -mtime -5
    在/var下找更改時間在5天以內的文件
  • 7.find /var -mtime +3
    在/var下找更改時間在3天以前的文件
  • 8.find /etc -type d
    在/etc下查找文件類型為d的目錄文件
  • 9.find /etc -type l
    在/etc下查找文件類型為l的鏈接文件
  • 10.find .-size +1000000c
    在當前目錄下查找文件大小大于1M的文件,1M是1000000個字節
  • 11.find .-perm 700|xargs chmod 777
    找出當前目錄下的所有權限為700的文件,并把其權限重設為777
  • 12.find .-type f|xargs ls -l
    查找出文件并查看其詳細信息

二.正則表達式的使用

  • 1.^linux
    以linux開頭的行
  • 2.$php
    以php結尾的行
  • 3 .
    匹配任意單字符
  • 4 .+
    匹配任意多個字符
  • 5 .*
    匹配0個或者多個字符
  • 6 [0-9a-z]
    匹配[]內任意一個字符
  • 7(linux)+
    出現多次linux單詞
  • 8(web){2}
    web出現了2次以上
  • 9
    只用來屏蔽一個元字符的特殊含義

三.Grep搜索命令的使用

  • 1.grep "li qq"*
    在所有文件中查找 li qq文件
  • 2.grep -c "file" a
    在a文件中有多少行匹配到file
  • 3.grep -n "file" a
    在a文件中有多少行匹配到file,同時顯示行和行號
  • 4.grep -i "file" a
    在a文件中查找file,并不區分大小寫
  • 5.grep -v "file" a
    在a文件中過濾掉file所在的行
  • 6.grep -E "2004:22:5[0-9]" a
    在a文件中查找時間在2004:22:50->2004:22:59的所在行
  • 7.grep -E "[210]" a
    在a文件中查找不包含210的行
  • 8.grep -E "h*p" a
    查找a文件中包含h和p的行
  • 9.grep -E "[5-8][6-9][0-3]" a
    查找大于560小于893的行
  • 10.grep -E "4{2}" a
    查找包含兩個4的行
  • 11.grep -E "4{2,}" a
    查找大于兩個4的行
  • 12.grep -E "4{2,4} a
    查找大于兩個4小于4個4的行
  • 13.grep -E "^$" a
    查找a文件中的空行
  • 14.grep "?" a
    查找a文件中包含?的行
  • 15.grep -E "^d" a
    查找a文件中以d開頭的行
  • 16.grep -E "[d]" a

四.Awk編程的使用

  • 1.awk '{print $0}' access.log
    查找出file文件中的每一列
  • 2.awk '{print $1"\t"$7}' access.log
    查找出file文件中的第一列和第七列
  • 3.cat file | awk '$0 !~ /192.168.10.2/'|grep "php" |wc -l
    匹配192.168.10.2的IP地址的統計,!為不匹配

五.Sed行定位的使用

  • 1.sed -n '2'p file
    只打印第二行,不打印其他的行
  • 2.sed -n '1,4'p file
    從第一行到第四行的記錄
  • 3.sed -n '/los/'p file
    打印匹配los的行
  • 4.sed -n '4,/los/'p file
    打印從第四行到匹配los的之間的所有行
  • 5.sed '1,2'd file
    把第一行和第二行全部刪除

六.Sort排序的使用

  • 1.sort file
    把文件按字母的升序進行排序
  • 2.sort -r file
    把文件按字母的降序進行排序
  • 3.cat file sort -t: -k1 -r
    以":"進行分割后的第一列來倒序排序

七.Uniq唯一性的使用

  • 1.uniq -c file
    打印緊挨的重復行出現的次數
  • 2.uniq -d file
    只打印重復的行
  • 3.awk '{print $1}' /var/log/httpd/access_log|sort|uniq -c
    把apache網站的所有訪問IP全部統計出來,并打印出統計次數

八.Split分離的使用

  • 1.split -2 file spt
    生成sptaa,sptab,sptac等多個文件,把a文件每兩行分割成一個文件,每個文件的前綴都是以file開頭的
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容