linux三剑客sed

  • A+
所属分类:linux
摘要

linux三剑客sed

linux三剑客sed

sed是一个流编辑器,

常用参数:

  • -n 安静模式 不打印输出
  • -e 增加一个执行脚本
  • -f 将脚本文件的内容添加到要执行的命令中
  • -i 编辑文件(如果提供后缀,则进行备份)
  • -c 在-i模式下整理文件时使用copy而不是rename
  • -r 在脚本中使用扩展正则表达式
  • -u 从输入文件加载最少数量的数据,并更频繁地刷新输出缓冲区

动作说明:

  • d 删除指定行
  • a 新增 在定位行后面增加信息
  • c 替换,用新文本替换指定文本
  • i 插入 i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
  • p 打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
  • s 使用替换模式替换相应模式
  • w filename 写文本到一个文件,类似输出重定向 >
  • r filename 从另一个文件中读文本,类似输入重定向 <
  • = 打印当前行号
  • q 退出sed

用法实例:

sed '/root/p' /etc/passwd
打印匹配到root的行,匹配后默认会显示文件中的所有行,-n只显示匹配行
linux三剑客sed
sed -n '/238.223.212.171/,$p' 1.txt
打印238.223.212.171 所在行到最后一行
linux三剑客sed
sed -n '1,/118.123.13.175/p' 1.txt
打印1一行到匹配到175所在行
linux三剑客sed
sed -n '2,5{=;p}' 1.txt
输出2,5行内容并且输出行号,当有多个命令时使用{},且命令之间使用;隔开
sed -n '2,5!{=;p}' 1.txt 代表取反
linux三剑客sed
sed -e '/^#/d' -e '/^$/d' /etc/my.cnf
sed -n '/^#/!{/^$/!p}' /etc/my.cnf
删除#开头的行和空格行
linux三剑客sed
linux三剑客sed
注意-i 是参数代表插入修改文件
i\end是动作,代表在匹配行的前面添加
sed -n '/\<nginx\>/p' /usr/local/nginx/nginx.conf
linux三剑客sed
打印含有nginx的行,注意<单词>这个是单词锚点
sed -n '/nginx/s/^/测试 /p' /usr/local/nginx/nginx.conf
linux三剑客sed
匹配nginx行,并在行首添加“测试”
sed -n 's/root/测试 &/p' /etc/passwd
sed -n 's/root/& 测试/p' /etc/passwd
linux三剑客sed
匹配root并在行首添加测试两个字
sed -n '/root/s/$/ LI/p' /etc/passwd
linux三剑客sed
匹配root并在行尾添加li
sed -n '/root/s/\(.*\)/\1 LI/p' /etc/passwd
linux三剑客sed
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: