bash read循环仅读取输入变量的第一行

2023-12-27

我有一个读取循环正在读取变量,但行为不符合我的预期。我想读取变量的每一行并处理每一行。这是我的循环:

while read -r line
do
   echo $line | sed 's/<\/td>/<\/td>$/g' | cut -d'$' -f2,3,4 >> file.txt
done <<< "$TABLE"

我希望它能够处理文件的每一行,但它只处理第一行。如果我的中间只是 echo $line >> file.txt 它会按预期工作。这里发生了什么?我如何获得我想要的行为?


看来你的线条是由\r代替\n.

使用此 while 循环来迭代输入read -d $'\r':

while read -rd $'\r' line; do
    echo "$line" | sed 's~</td>~</td>$~g' | cut -d'$' -f2,3,4 >> file.txt
done <<< "$TABLE"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bash read循环仅读取输入变量的第一行 的相关文章