如何从bash脚本中的文件逐行读取?
问题描述:
我在网上搜索关于这个问题,我发现两种方法至今:如何从bash脚本中的文件逐行读取?
while read line; do
commands
done < "$filename"
和
for $line in $(cat $filename); do
commands
done
没有这些工作,如果行有一个空间,虽然,例如,如果我们有这样的
textextext text
线不会打印textextext text
但
textextext
text
它计数这些东西为不同的线路,我如何才能避免这种情况发生?
答
您可以readarray(庆典4+)
readarray lines < "$file"
然后
for line in "${lines[@]}";
do
echo "$line"
done
注意,默认情况readarray
会甚至包括该行每行的末尾字符
+1
readarray的“-t”arg将“从每行读取的尾部换行删除”。 –
您对以下内容感兴趣a)引导和尾随空格或b)中间空格(例如,多个空格)或c)只在一行中的单词中? –