grep进阶
截取:dmesg(列出讯息) |grep ‘内容‘
-A 后面加数字 after 后面几行
-B 后面加数字 befor后面几行
寻找regular_express.txt 中的‘the‘行
cat regular_express.txt |grep ‘the‘
grep ‘the‘ regular_express.txt
grep -nv (加行号,反选)‘the‘ regular_express.txt
grep -ni (加行号,不区分大小写)‘the‘ regular_express.txt
搜寻[]括号中任何一个字符
grep -n ‘t[ae]st‘ regular_express.txt
grep -n ‘oo‘ regular_express.txt
grep -n ‘[^g]oo‘ regular_express.txt
反向选择, oo前不带字符g
grep -n ‘[^a-z]oo‘ regular_express.txt
不选小写
grep -n ‘[0-9]‘ regular_express.txt
[a-z],[A-Z],[0-9]方式表示
grep -n ‘^the‘ regular_express.txt
^行首 [^]反向选择
grep -n ‘\.$‘ regular_express.txt
$行尾 .有特殊意思\来跳脱
grep -n ‘g..d‘ regular_express.txt
.小数点代表一定有一个任意字符
grep -n ‘ooo*‘ regular_express.txt
*重复前面一个字符0-无穷多次数
grep -n ‘goo*g‘ regular_express.txt
grep -n ‘g.*g‘ regular_express.txt
限定连续字符范围{}
{}有特殊含义使用前需\跳脱
grep -n ‘o\{2\}‘ regular_express.txt
grep -n ‘go\{2,5\}g‘ regular_express.txt
基础正觃表示法字符汇整 (characters) P427
sed工具,用法
以行为单位 新增,删除
nl /etc/passwd | sed ‘2,5d‘
sed 动作接‘’ 2-5行d删除
nl regular_express.txt |sed ‘3,$d‘
删除第三行到最后行
nl /etc/passwd | sed ‘2a drink tea‘
第2行后加上drink tea
nl /etc/passwd | sed ‘2i drink tea‘
第2行前加上drink tea
nl /etc/passwd | sed ‘2a Drink tea or ......\
> drink beer ?‘
\增加新行
以行为单位 取代 显示
nl /etc/passwd | sed ‘2,5c No 2-5 number‘
2-5行c取代
nl /etc/passwd | sed -n ‘5,7p‘
安静模式 5-7行显示 其他不显示
部分数据搜寻 取代
sed ‘s/要被取代的字符串/新的字符串/g‘
ifconfig eth1 |grep ‘inet addr‘|sed ‘s/^.*addr://g‘| sed ‘s/Bcast.*$//g‘
取代 add包括前面任何 取代Bcast包括后面任何
直接修改档案内容(危险)
sed -i
sed -i ‘s/\.$/\!/g‘ regular_express.txt
取代行尾. 为!
延伸正则表达式
egrep P432
格式化打印
原文地址:http://koishi.blog.51cto.com/4885806/1673823