benoet-6ren">
gpt4 book ai didi

bash - 用sed替换一行中的多个字符串

转载 作者:行者123 更新时间:2023-12-05 04:15:58 26 4
gpt4 key购买 nike

我有一个包名列表,想用 sed

删除其中的一些
echo "package1 package2 package24 package44 package66 package12345" > benoetigte_pakete.list

如何删除其他列表中的某些内容?

dellist="package24|package66"

我试过了

cat benoetigte_pakete.list | sed "s/(package24|package66)//"

但这不起作用。

最佳答案

sed 正则表达式中,您必须转义 (|)

您还需要使用 g 修饰符,以便它替换行中的所有匹配项,而不仅仅是第一个匹配项。

dellist="package24|package66"
# escape the pipes
dellist=${dellist//|/\\|}
sed "s/\b\($dellist\)\b//g" benoietigte_packete.list

我添加了 \b 所以它只匹配整个单词。

根据您拥有的sed 版本,您还可以使用-E-r 选项来使用扩展的正则表达式。

关于bash - 用sed替换一行中的多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29728644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com