Sed 实记 · laoless‘s Blog

Posted lijianming180

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sed 实记 · laoless‘s Blog相关的知识,希望对你有一定的参考价值。

技术图片

sed编辑命令

p 打印匹配行
= 打印文件行号
a 在定位行之后追加文本
i 在定位行之前插入文本
d 删除定位行
c 用新文本替换定位文本
s 使用替换模式替换相应模式
r 从另一个文件读取文本
w 将文本写入到一个文件
y 变换字符,类似替换
q 第一个模式匹配完成后退出
l 显示与八进制ASCII码等价的控制字符
{} 在定位行执行的命令组
n 读取下一个输入行,用下一个命令处理新的行
h 将模式缓冲区的文本复制到保持缓冲区
H 将模式缓冲区的文本追加到保持缓冲区
x 互换模式缓冲区和保持缓冲区的内容
g 将保持缓冲区的内容复制到模式缓冲区
G 将保持缓冲区你内容追加到模式缓冲区
g 替换文本全部
p 与n选项结合只打印替换行
w 文件名 输出定向到一个文件

Eg:

  • -n打印文件第一行(不加选项,还会打印全部内容)

    1
    2
    sed -n '1p' input
    sed -n '1,3p' input
  • ’=‘只打印对应内容的行号

    1
    sed -n '/string/=' input
  • -e 打印查询字符并显示行号

    1
    sed -e '/string/=' -e '/string/p' input

    等价于sed ‘/string/{=;p}’ input`

  • a在指定内容后追加

    1
    sed '/string/aappend a new line.' input
  • 在文件最后一行追加

    1
    大专栏  Sed 实记 · laoless‘s Blog"code">
    sed '$'astring input
  • 替换文本

    1
    2
    3
    sed -n '/string/cint' input
    sed -n 's/string/int/2g' input
    sed -n '/string/s#string#int#g' #替换所有匹配到的字符串

    错误用法(-ni选项不能连用)

    1
    2
    sed -ni '/string/cint/p' php.ini
    sed -ni 's/string/int/p' php.ini
  • 删除最后一行和最后一行

    1
    sed -e '$'d  -e '1'd input
  • 只打印替换行

    1
    sed -n 's/string/int/p' input
  • 分别替换第n次匹配

    1
    sed -n 's/string/np' input
  • 显示控制字符(ASCII)

    1
    sed -n '1,$'l input
  • 处理匹配行的下一行

    1
    sed '/string/{n;s/cf/lol/;} input
  • 在指定字符串后/前添加内容

    1
    2
    sed -i 's/index.html/& index.php /' httpd.conf
    sed -i 's/index.html/index.php &/' httpd.conf

    &就代表着指定的字符串位置

以上是关于Sed 实记 · laoless‘s Blog的主要内容,如果未能解决你的问题,请参考以下文章

EJB组件开发实记

编译安装MySQL实记

编译安装MySQL实记

Percona Mysql Galera多读写集群部署生产环境实记

机器学习实记模型误差的来源

element-ui 实记问题记录