2010-11-04 119 views
6

我尝试使用*作为文件名一次性用sed替换很多文件。但它也试图处理目录,并给出错误并终止。有没有简单的方法来克服这一点?sed排除目录

回答

9

我不知道究竟如何你使用sed在这里,但正常的方式来处理UNIX只有常规文件find命令,类似:

find . -type f -exec sed 's/Hello/Goodbye/g' {} ';' 

类型限制你到普通文件,而不是目录或FIFO或任何其他类型的文件系统魔术。

如果您在系统上运行man find,则会看到许多其他可供选择的选项。

+0

我对linux/unix shell命令仍然很陌生,为什么当我运行它时,它会在很多文件的内容中屏蔽我的屏幕,但不会改变任何东西? – HumbleWebDev 2017-08-10 15:33:57

+0

@TheUnholy,这是正确的。这个答案的目的是展示如何使用'find'来处理文件而不是目录。 find命令的'有效载荷'(在这种情况下是一个简单的'sed'命令)可以修改以适应你的需要。 – paxdiablo 2017-08-10 20:57:36