【发布时间】:2013-01-26 17:40:04
【问题描述】:
我正在尝试使用 sed 将 13 替换为 21:
echo "for i in {1..5}; do commands for FILE13 > output_${i}; done" | sed 's/13/21/g'
我的输出如下所示:
for i in {1..5}; do commands for FILE21 > output_2; done
13 被替换为 21,但另外${i} 被替换为 2。
为什么会这样?以及如何停止 sed 替换 mu 花括号内容?
编辑
如果我的命令如下所示:
echo 'for i in {1..5}; awk'{( do commands)}' FILE13 > output_${i}; done' | sed 's/13/21/g'
当我收到 bash: syntax error near unexpected token('`
是使用\ 转义大括号的唯一解决方案吗?
【问题讨论】:
-
这听起来像是一个 XY 问题。为什么要编辑 shell 命令?您是否只需要一个遍历 FILE13 和 FILE21 的外部 for 循环?如果这是用于交互式 shell,请阅读 shell 的历史机制。
标签: sed