假设我的文件数量不确定
我想逐行读取此文件夹中的每个文件,/mnt/traitement
我该怎么做,我知道要逐行读取文件,您需要执行此代码
while read line
do
#stuff
done < file
但我不知道如何定位多个文件。
答案1
将 while 循环包装到 for 循环中就足够了:
for i in file1 file2 file3; do
while IFS= read -r line
do
#stuff
done < "$i"
done
如果您只关心文本本身,那么您可以这样做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