Linux文本處理三劍客


 Grep: 文本過濾工具, (grep,egrep,fgrep)  Sed: 文本編輯工具, Awk: 文本報告生成器

grep : 作用 文本搜索工具,根據用戶指定的‘模式對目標文件逐步進行匹配檢查,打印匹配到的行

            grep root /etc/passwd                           grep命令選項: 

            grep "$USER"  /etc/passwd                                         -v 顯示不被pattern 匹配的行     -e 僅顯示匹配到的字符串

            grep "$USER'  /etc/passwd                                         -i  忽略字符大小寫                    -c 統計匹配到的行數  -w 匹配單詞

            grep 'whoami'  /etc/passwd                                        -n 顯示匹配的行號         -A # 后幾行    -B# 前幾行  -C#  前后#行

nmap 掃描工具     nmap -sP -v 172.18.252.0/24 |grep -B1 up |grep scan |cut -d ' ' f5  > 1.txt   掃描一下up 的Ip地址

                           nmap -v -A  ip地址   掃描一下機器的開放的端口 

                        ifconfig eth1 |grep "inet addr"|cut -d: -f2|cut -d " " -f1         過濾IP地址 

                        df |grep /dev/sd|tr -s ' ' %|cut -d% -f5|sort -nr|head -1     查看磁盤最大使用率

正則表達式: 又一類特殊字符及文本字符所編寫的模式,表示控制或通配的功能   分兩類:  基本正則表達式  BRE   擴展正則表達式 ERE

字符匹配:  . 匹配單個任意字符 

               []  匹配指定范圍內的任意單個字符

              [^] 匹配指定范圍外的任意單個字符

             匹配次數:  *  匹配前面字符任意次,包括0次          位置錨定:^ 行首的喵定

                             .* 匹配任意字符任意次                                      $ 行尾喵定

                             \?  匹配前面字符0或1次                                    ^$ 表示空行    ^PATTERN$  用於模式匹配正行 

                             \+ 匹配前面字符至少一次                                  ^[[:space:]]*$     空白行

                            \{n\} 匹配前面的字符n次                                   \< 或 \b 詞首喵定     \> 或 \b詞尾喵定  ,用於單詞模式的右側

                           \{m,n\} 匹配前面的字符至少m次,至多n次             \<PATTERN>  匹配整個單詞

                           \{,n\}  匹配前面的字符至多n次

                           \{n,\}  匹配前面的字符至少n次

分組:\(\) 將一個或多個字符捆綁在一起,當作一個整體進行處理,  如: \(root\)\+ 

1. cat /proc/meminfo | grep ^[Ss].* -o     或 cat /proc/meminfo | grep -i '^s.* 
2.grep -v "/bin/bash$" /etc/passwd
3.cat /etc/passwd |grep "^rpc:" |cut -d : -f  7
4.grep "\b[0-9]\?[0-9][0-9]\b" /etc/passwd   或  grep "\b[0-9]\{2,3\}\b" /etc/passwd 
5.grep '^[ [:space:] ]\ + [ ^ [:space:] ]'  /etc/grub2.cfg
6.netstat -tan |grep "LISTEN[[:space:]]*$"
7.cut -d ":" -f1,3 /etc/passwd |grep "\<[0-9]\{1,3\}\>"
centos6:   cut -d ":" -f1,3 /etc/passwd |grep "\b[1-9]\?[0-9]\b" -e "\b[0-4][0-9]\{2\}\b"
8.grep "^\(.*\)\>.*\<\1$" /etc/passwd  或grep "^\(.*\):.*\<\1$"  /etc/passwd
9.df |grep '/dev/sd' |grep -o '[0-9]\+%' |tr -d %|sort -nr
擴展正則表達式:   * : 匹配前面字符任意次
                              ? : 0 或1次
                               +  : 1次或多次
                               {m}  : 匹配m次
                               {m,n} : 至少m, 至多n次
                              a|b:  a或b
                              C|cat : C 或cat
                              (C|c)at:  Cat或cat

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM