web处理三剑客
image.pnggrep ,egrep,fgrep 文本过滤器
sed: stream editor,流编辑器
awk: 文本格式化工具,报告生成器
每次sed从文本中取到一行,放到模式空间,会把模式空间内容输出,如果匹配到这一行就进行编辑,如果没有匹配到进行默认输出
sed [option] 'script' [input-file]
script: 地址定界编辑命令
常用选项:
-n: 不输出模式空间内容至屏幕
-e script:多点编辑
-f /PATH/TO/SED_SCRIPT_FILE
每一行一个编辑命令
-r: 支持扩展正则表达式
-i:直接编辑原文件
地址定界
1)空地址:对全文进行处理
2)单地址:
#:指定行
/pattern/: 被此模式匹配的每一行
3) 地址范围
#,#: 从第几行到第几行
#,+#: 3,+8 从第三行开始,往下进行8行。3行,往下8行一共9行
#,/pat1/
/pat1/,/pat2/
4) 步进地址:~
1~2: 1 3 5 7奇数行
2~2:所有的偶数行
编辑命令:
d:删除模式空间的内容
sed '1~2d' /etc/fstab 显示偶数行
p:打印模式空间内容
a: a \text: 在行后面追加文本text,支持使用\n实现多行追加
i: i \text:在行前面插入文本text,支持使用\n.实现多行插入
c: \text: 把匹配的行替换此处指定的文本text
w /PATH/TO/SOMEFILE: 读取指定文件的内容至当前文件,被模式匹配到的行处
r /PATH/FROM/SOMEFILE: 读取指定的文件内容至当前文件被模式匹配到的行处
=: 为模式匹配打印行号
!:条件取反,放在编辑命令之前
地址定界!编辑命令
s///:查找替换,其分隔符可自行指定,常用的由s@@@,s###等
替换标记
g:全局替换
w /PATH/TO/SOMEFILE: 将替换成功的结果保存至指定文件
p:显示替换成功的行
高级编辑命令
h:把模式空间的内容覆盖到 hold space 保持空间
H:把模式空间追加到保持空间
g:把保持空间内容,覆盖至模式空间
G:把保持空间内容,追加到模式空间
x:把模式空间的内容与保持空间的内容替换
n:读取匹配的行的下一行至模式空间,源先行被覆盖
N:追加读取匹配到的下一行,至模式空间
d:删除模式空间的行
D:删除多行模式空间的所有行
多行模式:当N读取多行时,据说多行模式
示例:
sed -n 'n;p' FILE 显示偶数行
sed '1!g;h;$!d/' FILE 逆序显示
sed '1$!N;$!D' FILE 取出文件后两行
sed 'n;d' FILE 显示奇数行
; 命令分隔符
网友评论