Sed文本处理工具总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_43551152/article/details/85063955

文本处理工具sed

sed工具
用法:
sed[option]… ‘script’ inputfile…
用法: 不加-i时仅仅是打印到屏幕显示,加-i可以修改文件,一般加-i.bak备份一个.bak文件
常用选项:
-n不输出模式空间内容到屏幕,即不自动打印
-e多点编辑
-f /PATH/SCRIPT_FILE从指定文件中读取编辑脚本
-r支持使用扩展正则表达式
-i.bak备份文件并原处编辑
script:
‘地址命令’
地址定界:
(1) 不给地址:对全文进行处理
(2) 单地址:
.#: 指定的行,$:最后一行
/pattern/:被此处模式所能够匹配到的每一行
(3) 地址范围:
.#,#
.#,+#
/pat1/,/pat2/
.#,/pat1/
(4) ~:步进

编辑命令:

d删除模式空间匹配的行,并立即启用下一轮循环
p打印当前模式空间内容,追加到默认输出之后
a[\]text在指定行后面追加文本,支持使用\n实现多行追加
i[\]text在行前面插入文本
c[\]text替换行为单行或多行文本
w /path/file保存模式匹配的行至指定文件
r /path/file读取指定文件的文本至模式空间中匹配到的行后
=为模式空间中的行打印行号
!模式空间中匹配行取反处理


例子
sed‘2p’ /etc/passwd
sed–n ‘2p’ /etc/passwd 显示第2行
sed–n ‘1,4p’ /etc/passwd 显示1-4行
sed–n ‘/root/p’ /etc/passwd 显示带有root的行
sed–n ‘2,/root/p’ /etc/passwd 从2行开始
sed-n ‘/^$/=’ file 显示空行行号 =代表行号
sed–n –e ‘/^KaTeX parse error: Expected group after '^' at position 10: /p’ –e ‘/^̲/=’ file
sed–n –r ‘/#|$/d’ + file 删除该文件中带#注释和空白的行
sed‘/root/a\superman’ /etc/passwd行后
sed‘/root/i\superman’ /etc/passwd行前
sed‘/root/c\superman’ /etc/passwd代替行
s///查找替换,支持使用其它分隔符,s@@@,s###
替换标记:
g行内全局替换
p显示替换成功的行
w /PATH/FILE将替换成功的行保存至文件中
nl 可以显示行号


sed -n ‘/^u/p’ /data/f1 打印出data下的f1文件中以u开头的行
sed -n '3,9’只显示3-9行
sed -n ‘/ftp/,/lib/’ passwd 显示passwd文件中以ftp开头和以lib开头之间的行
sed -n ‘1~2p’ 打印奇数行
sed -n ‘2~2p’ 打印偶数行
sed -i ‘/^SELINUX=/cSELINUX=disabled’ /etc/selinux/config 把config文件中的SELINUX=enforcing改为SELINUX=disabled 禁用selinux
sed -n ‘s/tmpfs/tempfilesystem/g’ /etc/fstab 将文件fstab中的tmpfs替换为 tempfilesystem,并且只显示替换结果,s为查找替换,p为只显示替换的那一行
sed -r ‘s/[[:alpha:]]/\u&/g’ +文件 [[:alpha:]]意思为字母,u为大写,&表示搜索到的内容,用u&替换原内容,把所有的字母替换为大写
sed -r ‘s/[[:alpha:]]/\l&/g’ +文件 [[:alpha:]]意思为字母,l为小写,&表示搜索到的内容,用u&替换原内容,把所有的字母替换为小写
sed -r ‘s/[#]/#&’ +文件 将文件中不是#开头的行加上#并显示,其中&代表被搜索出来的内容,等于用#&替换了原来的内容,加-i可以直接修改 …(重点)
sed -nr ‘/.CMDLINE_LINUX./s#(.*)"#\1 net.ifnames=0"#p’ /etc/default/grub 在带有CMDLINE_LINUX的一行后加上net.ifnames=0 仅在7系统需要修改 …修改
s///查找替换,支持使用其它分隔符,s@@@,s###
替换标记:
g行内全局替换
p显示替换成功的行
w /PATH/FILE将替换成功的行保存至文件中

猜你喜欢

转载自blog.csdn.net/weixin_43551152/article/details/85063955