我想在shell脚本的循环中将后缀连接到一个字符串,但结果让我感到困惑。 shell脚本如下:
LT51240392010131BKT01
_NDVI40392010131BKT01
LT51240392010163BKT01
_NDVI40392010163BKT01
...
结果是:
LT51240392010131BKT01
LT51240392010131BKT01_NDVI
LT51240392010163BKT01
LT51240392010163BKT01_NDVI
...
前五个字符被" _NDVI"取代。 但预期的结果应该是:
{{1}}
我认为字符串连接的方法是正确的,如果不在循环中。我不知道为什么会产生这个结果?
答案 0 :(得分:0)
看起来您的文件可能包含Windows样式的行结尾(回车符+换行符),因此您应该将它们转换为UNIX样式。一种简单的方法是使用工具dos2unix
。
请勿使用for
读取文本文件的行:
while read -r line
do
echo "$line"
echo "${line}_NDVI"
done < IMAGElist.txt
请注意,使用专为处理文本设置的工具(例如awk或sed),您可以更有效地实现此结果。