我在网上搜索过这个问题,到目前为止我找到了两种方法:
while read line; do
commands
done < "$filename"
和
for $line in $(cat $filename); do
commands
done
如果行中有空格,这些都不起作用,例如,如果我们有这样的行
textextext text
它不会打印textextext 文本
但是
textextext
text
它将这些事情算作不同的行,我怎样才能避免这种情况发生?
最佳答案
像这样?
while IFS= read line ; do
something "$line"
done <"$file"
这是一个简短的测试:
while IFS= read line ; do echo "$line"; done <<<"$(echo -e "a b\nc d")"
a b
c d
关于file - 如何从 bash 脚本中的文件中逐行读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7957361/