我试图在 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/