使用 sed 和 find 执行目录下的所有文件

使用 sed 和 find 执行目录下的所有文件

我正在尝试使用find来执行目录下的所有文件。我有一个sed脚本,它将用 替换所有#实例//

假设我的目录是,/path/to/directory并且它包含file1、、file2file3

使用findsed

find /path/to/directory -type f -exec sed -f file.sed {} \;

我如何让它运行下的所有文件( file1,,file2)?file3path/to/directory

答案1

您的find命令看起来不错,应该可以工作,前提是sed中的命令file.sed正确。由于您没有向我们展示,我们无法确定它是否正确,因此,如果将所有 实例替换为file.sed,则其内容应如下所示:#//

's|#|//|g'

请注意,为了便于阅读|,使用 而不是 来作为分隔符/(我们不必/为了替换而对每一个 进行转义)。

您还需要做的是使用标志来修改文件-i sed

所以你的命令应该是:

find /path/to/directory -type f -exec sed -i -f file.sed {} \;

然而,对于这样一个简单的替换,使用sed文件似乎有点过头了。在这种情况下,我将运行find以下命令:

find /path/to/directory -type f -exec sed -i -e 's|#|//|g' {} \;

相关内容