grep grep 文本过滤工具,将过滤内容的整行输出
-v 把不想要的排除
-i 不区分大小写过滤
-n 对搜索到的内容显示行号,显示原文件的行号
-o 只输出匹配的内容
--color 对所匹配的内容显示颜色,默认是红色
-w 按照单词过滤
-E 过滤多个字符串
-A 匹配过滤内容之后的N行
-B 匹配过滤内容之前的N行
-C 匹配过滤内容前后的N行
Sed 命令 Stream Editor (字符流编辑器)
选项
-n 取消默认输出,常与sed内置命令p连用
-i 直接修改文件内容,而不输出到终端,不用-i是输出修改,不修改文件
-e 允许多次编辑
内置命令
a 全拼append,表示追加文本 >> ,在指定的行后添加一行或多行文本
d 全拼delete,删除匹配文本的行
i 全拼insert,修改源文件
p 全拼print,打印输出匹配行的内容
替换:'s#oldboy#oldgirl#g'
过滤:sed -n '/oldboy/p' oldboyedu.txt
删除:sed '/oldboy/d' oldboyedu.txt
替换多个字符串:sed -e 's#oldboy#oldgirl#g' -e 's#49000448#228877690#g' oldboyedu.txt
第二行后追加:sed '2a I am likaiyu \nI like oldgirl' oldboyedu.txt
awk 对复杂的内容取列
-F 指定分隔符,如果不加分隔符,默认是空格
$1表示第一列 $2表示第二列 $NF取最后一列 $(NF-1)倒数第二列
NR==数字 表示取第几行
NR有多种形式 NR==1,NR==2 第一行和第二行
NR>=1&&NR<=5 取第一行到第五行的内容
awk过滤功能
格式:awk ‘/要过滤的内容/ ’文件
取IP地址
[root@kai ~]# ifconfig |sed -n '2p' | awk -F ":" '{print $2}'|awk '{print $1}'
[root@kai ~]# ifconfig eth0 | awk -F "[: ]+" 'NR==2{print $4}'
[root@kai ~]# ifconfig eth0 | sed -n '2p' | awk -F ":" '{print $2}'|awk -F " " '{print $1}'