shell脚本之sed命令

sed 在 Shell 脚本中非常常用,可以用于文本替换、插入、删除等操作。
以下是 sed 命令的基本语法:

sed [选项] '命令' [文件...]

其中,选项是可选的,可以用来指定一些额外的参数,如输入文件的分隔符等;命令是用来定义编辑操作的命令,可以是查找、替换、删除等;文件是要进行编辑的文件列表,可以指定多个文件,也可以使用管道从其他命令获取输入。

sed 命令的一些常用选项

-n:静默模式,不输出模式空间中的内容。
-e:指定要执行的多个命令。
-f:指定包含要执行的命令的文件。
-i:直接修改文件内容,而不是输出到标准输出。
-r:使用扩展正则表达式。
-s:将多个文件视为一个连续的文件流处理。
-u:使用未缓冲的 I/O,适用于大文件处理。

sed 命令的一些常用命令

s/pattern/replacement/:替换操作,将模式空间中匹配到的第一个模式替换为指定的替换字符串。
s/pattern/replacement/g:全局替换操作,将模式空间中匹配到的所有模式替换为指定的替换字符串。
s/pattern/replacement/p:打印操作,将模式空间中匹配到的模式替换为指定的替换字符串,并输出到标准输出。
s/pattern/replacement/w filename:写入操作,将模式空间中匹配到的模式替换为指定的替换字符串,并将结果写入指定的文件。
d:删除操作,删除模式空间中的行。
p:打印操作,输出模式空间中的内容。
n:下一行操作,读取并处理下一行。
N:追加下一行操作,将下一行追加到模式空间中。
h:复制模式空间内容到保持空间。
H:追加模式空间内容到保持空间。
g:将保持空间的内容复制到模式空间。
G:将保持空间的内容追加到模式空间。
x:交换模式空间和保持空间的内容。
b label:无条件跳转操作,跳转到指定的标签位置。
t label:测试操作,如果模式空间中包含匹配的模式,则跳转到指定的标签位置。
q:退出操作,退出 sed 处理。

具体例子

1)替换文本
使用sed命令可以将文本中的某个字符串替换为另一个字符串。下面是一个简单的例子:

sed 's/search_string/replacement_string/g' file.txt

上述命令将在文件file.txt中查找所有的search_string,并将其替换为replacement_string。其中,s表示替换操作,g表示全局替换(即一行中的所有匹配项都被替换)。

删除文本
使用sed命令可以删除文本中的特定行或特定字符串。下面是一个例子:

sed '/search_string/d' file.txt

上述命令将在文件file.txt中查找所有的包含search_string的行,并将其删除。其中,d表示删除操作。

插入文本
使用sed命令可以在文本的特定位置插入新的文本。下面是一个例子:

sed '/search_string/a\new_text' file.txt

上述命令将在文件file.txt中查找所有的包含search_string的行,并在其后面插入new_text。其中,a表示插入操作,\new_text表示要插入的新文本。

移动文本
使用sed命令可以将文本中的特定行或特定字符串移动到其他位置。下面是一个例子:

sed '/search_string/{x;s/\n/replacement_string/;}' file.txt

上述命令将在文件file.txt中查找所有的包含search_string的行,并将其移动到文件的末尾,并将其中的search_string替换为replacement_string。其中,x表示交换操作,s表示替换操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

付宇利

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

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

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

打赏作者

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

抵扣说明:

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

余额充值