bash - 如何在搜索模式中使用带有 sed 的 xargs

标签 bash sed replace pipeline

我需要使用命令的输出作为 sed 中的搜索模式。我将使用 echo 做一个例子,但假设这可能是一个更复杂的命令:

echo "some pattern" | xargs sed -i 's/{}/replacement/g' file.txt

该命令不起作用,因为“某些模式”有一个空格,但我认为这清楚地说明了我的问题。

我怎样才能使该命令起作用?

提前致谢

最佳答案

您需要用 -I 开关告诉 xargs 要替换什么 - 它似乎不会自动知道 {},至少在某些版本中是这样。

echo "pattern" | xargs -I '{}' sed -i 's/{}/replacement/g' file.txt

关于bash - 如何在搜索模式中使用带有 sed 的 xargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14402949/

相关文章:

Bash 脚本无法从列表中下载源包

pandas - 替换 DataFrame 索引中的 NaN

java - 如何用java中的另一个单词替换字符串中所有出现的单词?

bash - bash vi 模式下 tmux 清除历史记录

linux - 在脚本中调用多个退出点

bash - 如果不是Bash,则使用语法

linux - 如何使用 grep 打印一行及其匹配模式

regex - sed - 删除行尾的句点

linux - 格式化 top 的批处理模式输出以进行绘图/绘图

r - 如何将多列中的 NA 替换为同一数据集中其他相应多列的值?