美文网首页
sed 修改/替换文件内容

sed 修改/替换文件内容

作者: relax_小罗罗 | 来源:发表于2021-08-26 20:05 被阅读0次

最近在写SH脚本,实现一键部署,其中有些环境参数是会随着现场实际情况改变而变跟的,或者说修改一些配置文件的选项值,最终找到我们的sed 命令来解决(echo "">> filename 只能添加到文件最后)

案例如下:

替换变量

sed -i "s/SELINUX=enforcing/SELINUX=disabled /g" /etc/selinux/config

替换变量时如果是如'/'符号 要加''转义来处理 比如

sed -i "s/fileBaseUrl:'http:\/\/ip:port'/fileBaseUrl:'http:\/\/${host_ip}'/g" nginx/html/public/config.js

在第一行前插入文本

sed -i '1 i\插入字符串' datafile

在最后一行后插入文本

sed -i '$ a\插入字符串' datafile

在匹配行前插入一行

sed -i '/pattern/ i "插入字符串"'' datafile

在匹配行后插入一行

sed -i '/pattern/ a "插入字符串"' datafile

其他命令详解在下方给大家参考参考

sed 命令解释如下:

用法: sed [选项]... {脚本(如果没有其他脚本)} [输入文件]...

  -n, --quiet, --silent
                 取消自动打印模式空间
  -e 脚本, --expression=脚本
                 添加“脚本”到程序的运行列表
  -f 脚本文件, --file=脚本文件
                 添加“脚本文件”到程序的运行列表
  --follow-symlinks
                 直接修改文件时跟随软链接
  -i[SUFFIX], --in-place[=SUFFIX]
                 edit files in place (makes backup if SUFFIX supplied)
  -c, --copy
                 use copy instead of rename when shuffling files in -i mode
  -b, --binary
                 does nothing; for compatibility with WIN32/CYGWIN/MSDOS/EMX (
                 open files in binary mode (CR+LFs are not treated specially))
  -l N, --line-length=N
                 指定“l”命令的换行期望长度
  --posix
                 关闭所有 GNU 扩展
  -r, --regexp-extended
                 在脚本中使用扩展正则表达式
  -s, --separate
                 将输入文件视为各个独立的文件而不是一个长的连续输入
  -u, --unbuffered
                 从输入文件读取最少的数据,更频繁的刷新输出
  -z, --null-data
                 separate lines by NUL characters
  --help
                 display this help and exit
  --version
                 output version information and exit

如果没有 -e, --expression, -f 或 --file 选项,那么第一个非选项参数被视为
sed脚本。其他非选项参数被视为输入文件,如果没有输入文件,那么程序将从标准

我们要使用的一般都是-e 或者 -i 其他的不怎么常用。关键点在于中间的脚本;
脚本详情如下:

a\  在当前行后添加一行或多行
c\  用新文本修改(替换)当前行中的文本
d   删除行
i\  在当前行之前插入文本
h   把模式空间里的内容复制到暂存缓存区
H   把模式空间里的内容追加到暂存缓存区
g   取出暂存缓冲区里的内容,将其复制到模式空间,覆盖该处原有内容
G   取出暂存缓冲区里的内容,将其复制到模式空间,追加在原有内容后面
l   列出非打印字符
p   打印行
n   读入下一输入行,并从下一条命令而不是第一条命令开始处理
q   结束或退出 sed
r   从文件中读取输入行
!   对所选行意外的所有行应用命令
s   用一个字符串替换另一个

g   在行内进行全局替换
p   打印行
w   将行写入文件
x   交换暂存缓冲区与模式空间的内容
y   将字符转换为另一字符(不能对正则表达式使用 y 命令)
image.png

参考地址:https://www.cnblogs.com/ginvip/p/6376049.html

相关文章

  • sed 修改/替换文件内容

    最近在写SH脚本,实现一键部署,其中有些环境参数是会随着现场实际情况改变而变跟的,或者说修改一些配置文件的选项值,...

  • sed替换文件

    查看替换文件,不进行修改文件,仅查看而已. sed 's/6379/6380/g' redis.conf 替换文件...

  • sed

    sed stream查看 ,修改文件内容grep 查看文件内容 sed【option】#cp /etc/pass...

  • sed-使用sed替换字符串

    使用sed替换文件中字符串,-i参数为直接替换,不加参数为展示不修改原文件 格式:sed -i “s/原字符串/新...

  • 7月24日 系统正则符号和sed

    sed命令 修改文件内容,对文件行进行操作配置文件,文本文件 语法结构 sed [参数] ‘条件 指令’ 文件信息...

  • linux常用的文件操作命令(echo/cat/sed/wc)

    echo echo 是输出内容 cat cat是输出文件内容,命令格式 sed sed是一个可以修改/查看文件的命...

  • mac下sed命令使用

    sed替换文件夹下所有文件grep -rl 'getUsdToCnyRate()' ./ | xargs sed...

  • D18-操作系统sed命令

    一、系统三剑客命令 sed 1.作用 修改文件内容 对文件行进行操作sed - stream editor ...

  • 【sed】文本处理样例

    输出指定行 使用 sed sed命令下批量替换文件内容 格式: 示例: 把当前目录下lishan.txt里的sha...

  • 常用命令

    替换内容 sed -i "s/old/new/g" 'grep old -rl / path' 显示文件数 fin...

网友评论

      本文标题:sed 修改/替换文件内容

      本文链接:https://www.haomeiwen.com/subject/vfwuiltx.html