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

时间:2012-02-28 07:09:19

标签: bash

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

#!/bin/bash
while read line;
do
  echo $line
done < /tmp/log/file1

我想尝试使用多个文件/tmp/log/*,但它返回错误ambiguous redirect。 知道我怎么能围绕它?

2 个答案:

答案 0 :(得分:7)

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

for file in /tmp/log/*; do
    while read -r line; do
        echo "$line"
    done < "$file"
done

策略只是用for循环包装你的while循环,它一次一个地处理每个文件。

答案 1 :(得分:0)

不知道你到底需要什么.. 可能你正在寻找这个:

cat /tmp/log/*

这是你需要的吗?

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