Bash 如何从多个文件中读取数据行

Bash 如何从多个文件中读取数据行,bash,Bash,我需要从目录/tmp/log中的文件中提取数据。 我没有问题从单个文件中提取 #!/bin/bash while read line; do echo $line done < /tmp/log/file1 #/bin/bash 读行时; 做 回音$线 完成

我需要从目录
/tmp/log
中的文件中提取数据。 我没有问题从单个文件中提取

#!/bin/bash
while read line;
do
  echo $line
done < /tmp/log/file1
#/bin/bash
读行时;
做
回音$线
完成
我想尝试使用多个文件
/tmp/log/*
,但它返回了错误
不明确的重定向

你知道我该怎么解决吗?

我不知道你到底需要什么。。 可能您正在寻找以下内容:

cat /tmp/log/*
这是你需要的吗

for line in `cat /tmp/log/*`
do     
echo $line     
done

您可以按如下方式读取for循环中的文件:

for file in /tmp/log/*; do
    while read -r line; do
        echo "$line"
    done < "$file"
done
用于/tmp/log/*中的文件;做
而read-r行;做
回音“$line”
完成<“$file”
完成

策略是使用for循环包装while循环,该循环负责一次处理一个文件。

它确实可以完成这项工作,但我希望逐行处理数据。在这种情况下,您可以使用进程替换:
同时读取行;做这正是我想要的。谢谢你!有趣的循环是,for循环将文件提供给while循环。