sed 和 awk 可以接收多个文件吗?

sed 和 awk 可以接收多个文件吗?

grep 可以在多个文件中搜索,包括递归指定目录下的文件。这使得 grep 能够找到哪个文件包含模式。

awk 和 sed 也可以吗?好像只能处理一个文件?谢谢。

答案1

来自awk常见问题解答:

16. awk 如何处理多个文件?
...
16.2 如何让 awk 读取多个文件?
它是自动的(至少在 Unix 下)——使用如下命令:
awk '/^#include/ {print $2}' *.c *.h

awk 将连续读取作为参数传递给它的文件,即在完成一个文件后转到下一个文件。当前正在读取的文件名存储为FILENAME.

当您想要逐行(逐条记录)比较多个文件的内容时,这尤其有用:例如这个问题

请参阅文件读取手册以获得完整的解释。

答案2

如果您想以简单的方式做到这一点,请尝试将其与foreach环形

foreach var (`ls directory_path`)
sed -i '/../.../ ' $var
awk '{ #commands to be run }' $var 
end

相关内容