sed 命令的基本语法:sed -i s/.../.../g

sed -i s/..../g 是一个在 Linux 和 Unix 系统中常用的命令,用于对文件进行查找和替换操作。这个命令的格式如下:

sed -i 's/要被替换的字符串/新的字符串/g' 文件名

在这个命令中,-i 选项表示对文件进行原地编辑,s 表示替换操作,g 表示全局替换。

然而,如果你要替换的文本中包含了特殊字符,比如 / 或者 * 等,那么你需要对这些特殊字符进行转义。

例如,如果你想要将文件中的所有 * 替换为 #,你可以使用以下命令:

sed -i 's/\*/#/g' 文件名

在这个例子中,* 前面加了反斜杠 \ 来转义,这样 sed 就能正确识别它为普通字符,而不是正则表达式中的特殊字符。

例如,如果你想要将文件中的所有 a.b 替换为 a#b,你可以使用以下命令:

sed -i 's/a\.b/a#b/g' 文件名

在这个例子中,. 前面加了反斜杠 \ 来转义,这样 sed 就能正确识别它为普通字符,而不是正则表达式中的任意字符的意思。

如果你要替换的特殊字符是 &,那么你需要使用 \& 来进行转义,因为 & 在正则表达式中表示为匹配到的整个字符串。

sed -i 's/ab/a\&b/g' 文件名

例如下面命令:

sed -i 's$# under the License.$export JAVA_HOME=/opt/java1\\n$g'

该命令是使用 sed 命令对文件进行文本替换操作。让我们逐步解释这条命令:

各部分含义:

  • sed: Stream Editor,用于对文本文件中的内容进行搜索、替换、删除等操作。

  • -i: 表示在文件中直接进行修改(in-place),也就是对文件的内容进行实际的修改,而不是输出到终端。

  • s$# under the License.$export JAVA_HOME=/opt/java1\\n$g:

    • s: 是 sed 的替换命令(substitute)。基本形式为 s/old/new/,即将旧内容替换为新内容。
    • $: 是分隔符,通常使用 /,但这里使用了 $ 作为分隔符,以避免与替换内容中的 / 产生冲突。
    • # under the License.: 这是要查找的目标字符串,即文件中包含的部分文本。
    • export JAVA_HOME=/opt/java1\\n: 这是要替换的新内容,表示将目标字符串替换为 export JAVA_HOME=/opt/java1。其中 \\n 表示换行符(转义后的 \n)。
    • g: 表示全局替换,即在每一行中匹配该字符串时,都会进行替换。如果没有 g,则只会替换每行中第一次匹配的内容。

总体解释:

这条命令的功能是在某个文件中,找到每一行包含 # under the License. 这个文本的地方,将其替换为 export JAVA_HOME=/opt/java1,并且在此之后加上换行符。

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心码农1号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值