如何在循环中使用文件输出 Linux

how to use a file output in a loop Linux

我有一个包含很多 jar 名称的文件

jars.txt 包含例如

axiom-api-1.2.13.jar
axiom-dom-1.2.13.jar
axiom-impl-1.2.13.jar
axis2-adb-1.6.2.jar
axis2-adb-codegen-1.6.2.jar
axis2-ant-plugin-1.6.2.jar
axis2-clustering-1.6.2.jar

我想找到他们的位置并删除他们 我尝试使用以下脚本

#!/bin/ksh
file="/path/to/file/jars.txt"

while IFS= read -r line
do
    echo "$line"
    for i in $(find  $BASE_DIR/root/ -name "$line"); do
        echo "delete $i"
        rm "$i"
    done
done <"$file"

echo "$line" 行正确打印文件名,但在 for 循环中,结果为空

如果我使用 find $BASE_DIR/root/ -name "axiom-api-1.2.13.jar" 它就可以找到所有文件

所以我在这里错过了什么? 为什么 for 循环不能将 $line 作为参数?

文件 jars.txt 在 windows 上创建,当我在 Linux 上使用它时它有格式错误 解决方案是在 Linux 中创建一个新文件并复制数据