4

可能重复:
如何使用 sudo 将输出重定向到我无权写入的位置?

假设我想更改 /home 中的文件“foo”,对其应用一些正则表达式(通过sed),然后将结果放入名为 /home/foo2 的文件中。

我对 /home 或 foo 都没有读/写访问权限,所以我使用sudo。但是,我仍然得到一个权限被拒绝

sudo sed "s/bar/baz/" <foo >foo2
bash: foo2: Permission denied

有任何想法吗?谢谢

4

2 回答 2

4

使用就地选项,-i。你的语法是:

sed -i [pattern] filename
于 2012-10-30T15:04:05.560 回答
1

虽然sh一般来说可能是一个坏主意,但这将允许foo2为您的 shell 创建一个新文件:

sudo sh -c "sudo sed 's/bar/baz/' <foo >foo2"

于 2012-10-30T15:12:39.800 回答