linux - 如何循环遍历目录中的文件,然后将它们读入 bash 中的字符串变量

标签 linux bash shell unix sh

我试图在 bash 中循环访问一个包含几个 .txt 文件的目录。我对 bash 的经验很少,但我需要使用它,因为一旦我获得每个文件的内容,我就可以运行其他命令。我 想要这样做:

for file in <directory>; do
    read its contents
    do something with the contents
done

我发现要读取一个文件,如果我对文件名进行硬编码,您可以使用一个文件来完成此操作:

contents = $(<filename.txt)

并循环遍历我正在执行的目录中的所有文件:

for file in dir; do

done

我希望能够遍历所有文件并在循环中使用文件变量读取它们。 但是在循环中,这些都不起作用(我也尝试过这些的组合):

for file in dir; do
    contents = $(<$file)
done

for file in dir; do
     contents = $(<"$file")
done

for file in dir; do
     contents = $(<${file##*/})
done

for file in dir; do
     contents = $(<"${file##*/}")
done

for file in dir; do
     contents = $(<$(basename "$file"))
done

for file in dir; do
     filename = $(basename "$file")
     contents = $(<$filename)
done

for file in dir; do
     filename = "${file##*/}"
     contents = $(<$filename)
done

提前感谢您的帮助。

最佳答案

find <dir_path> -iname '*.txt' -exec cat {} + | your_parser

或者只是

cat /<dir_path>/*.txt | your_parser

关于linux - 如何循环遍历目录中的文件,然后将它们读入 bash 中的字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40456975/

相关文章:

c - 无法使用 popen 函数读取命令输出

linux - crontab 没有删除 linux 中的文件

python - 查找大型文本文件中是否存在一组行

json - 制作一个既有效的 JSON 又转义 shell 的字符串

bash - 如何在保持流分离的同时将 stdout+stderr 重定向到一个文件?

linux - 使用 bash 替换 .conf 文件中的单个占位符

linux - awk 在变量中的用法

json - 将变量(包含空格)传递给 curl --data 字段

linux - 使用 perl openssh 传递命令服务器

bash - 在 bash 中连接和操作树状结构