Linux AWK 和 SED

青春壹個敷衍的年華 提交于 2019-11-28 21:22:14

sed编辑器 较倾向于行处理

命令格式:

sed -[i|n|e] '行号,行号{command1;command2};/正则表达式/,/正则表达式/{comand3;};行号{comand4;command5};/正则表达式/{command6}' file

-i 直接修改文件

-n 只输出有影响的行

-e 多命令

p  打印匹配行

d  删除匹配行

s/正则表达式/字符串/g;   替换行内所有匹配到的串  s/正则表达式/&字符串/g; 将字符串拼接在行内所有匹配到的字符串后

s/正则表达式/字符串/;  替换行内第一个匹配到的串 s/正则表达式/&字符串/; 将字符串拼接在行内第一个匹配到的字符串后

n 匹配行的下行

i  在匹配行前插入

a 在匹配行后添加

c 替换匹配行

w 将匹配行写入文件

r 将匹配行处读取文件


AWK linux 文本字段处理利器,相较于sed更倾向于在行内字段处理方面的能力。

通用命令格式:

awk -[F|f|v]  'BEGIN{}/正则表达式/{comand1;comand2};/正则表达式/{comand3;comand4}END{}' [OFS|ORS]="" file 

流程:if ; while;for;continue;break;同C语言

              exit 跳到 END命令块。next 表示跳过当前行,继续处理下行

正则表达式:

            *   0到任意个字符

            +    1个到任意个字符

            ?     0或者1个字符

            .     任意1个字符

            []    []中任意一个字符

            [-]  范围内任意一个字符

            [^] 非[]内任意一个字符

            |     或

            ()   

             ^   行首

             $   行尾

            {,}   重复范围内次


















易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!