Think before you speak, read before you think.

grep进行筛选

排除空行和#开头的行(grep -E 扩展正归表达式)

cat x.xx | grep -Ev "^$|#"

过滤多个条件,或的关系

ps aux | grep 'httpd\|nginx'
ps aux | grep -E "httpd|nginx"

排除以#开头的行

cat x.xx | grep -v ^#

查看file1中空行的行号

grep -n ^$ file1

需要严格匹配,如筛选abc,不需要abcd,abcde,则使用-w –word-regexp

grep -w "abc"

或者

grep "\<abc\>"

管道加grep -i不区分大小写匹配

lspci | grep -i ether
 04:00.2 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0a)

直接取出当前目录文件中含有conf的行

grep -R 'conf' .

grep 打印出前面before,后面after,周边around的几行

cat file | grep -A 1 aaa
cat file | grep -B 1 aaa
cat file | grep -C 1 aaa

高亮显示 grep 出来的字符

cat aaaa | grep --color aaaa

去掉指定的几个 pattern

grep -v -e "pattern1" -e "pattern2"
grep -Ev "pattern1|pattern2"

对过滤的结果计数(行数)

grep -c 'aaaa' filename

当前目录找到有某些字符的行及文件

grep -rn 'bbs' .

当前目录找到有某些字符的文件

grep -rl 'bbs' .

只输出匹配到的文字

不输出文件名

grep -h 'my_variable' /data/code/*

例:把所有子域名打印出来

cat domain.txt | grep -Eo '(\w+.)+jpuyy.com'

grep 所有 ip 地址

grep -roE '([0-9]{1,3}\.){3}[0-9]{1,3}' .

grep 所有的 ip 网段

grep -roE '([0-9]{1,3}\.){3}[0-9]{1,3}\/[0-9]{1,2}' .

grep 包含中文的文件

grep -rl '[\u4e00-\u9fa5]'  .

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *