首页 > 代码库 > Linux文本处理三剑客

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

技术分享

 

Linux文本处理三剑客