如何逐行读取多个文件

Pos*_*m3r 3 command-line scripts

假设我的文件数量不足

/mnt/traitement,我想逐行读取此文件夹中的每个文件,我该怎么做,我知道要逐行读取文件,您需要执行此代码

while read line
do
   #stuff
done < file
Run Code Online (Sandbox Code Playgroud)

但我不知道如何定位多个文件。

Ser*_*nyy 6

将 while 循环包装成 for 循环就足够了:

for i in file1 file2 file3; do
    while IFS= read -r line
    do
         #stuff
    done < "$i"
 done
Run Code Online (Sandbox Code Playgroud)

如果你只关心文本本身,你可以只关心cat file1 file2 file3 | while IFS= read -r line非换行符终止的文件,因为cat会将该文件的最后一项与新文件的第一行拼接起来。

此外,由于您提到了特定目录,您可以将 glob 与 for 循环一起使用,如for i in /mnt/traitement/*. 像这样

for i in  /mnt/traitement/*   ; do
    if ! [ -f "$i" ]; then
        continue
    fi
    while IFS= read -r line
    do
         #stuff
    done < "$i"
 done
Run Code Online (Sandbox Code Playgroud)