【发布时间】:2010-05-10 23:32:57
【问题描述】:
按照bash-hackers wiki's recommendation,我想用ed编辑文件。
我特别想用 ed 而不是 sed 来做以下事情:
find . -type f -exec sed -i -e 's/a/b/g' {} \;
我看到 ed 没有像 sed 的 -e 那样的 opt,据我所知,管道和 io 重定向是非交互地使用它的唯一方法。
因此,使用 bash 脚本中的 ed 来执行与上述 sed 命令相同的操作如下所示:
ed file_name <<<$'g/a/s//b/g\nw'
或者
echo $'g/a/s//b/g\nw' | ed file_name
但据我所知,在 find 的 -exec 中不可能涉及管道或 io 重定向。
我错过了什么吗?或者克服这个问题的唯一方法是使用循环?
for file in $(find . -type f -print); do ed $file <<<$'g/a/s//b/g\nw'; done;
【问题讨论】:
标签: bash find gnu-coreutils ed