我正在尝试在项目的目录中的.csv(全部在一列中)中找到文件名,以确定项目中存在哪些文件。我将这些文件的目录输出到另一个csv,但是在使用此循环时找不到返回任何内容。这些文件通常带有下划线,连字符和点号,但没有其他特殊字符或空格
#!/bin/bash
while read file; do
echo $file
find "/Users/myname/Documents/project/software 6.2.0.1/webclient" -name "$file" -exec echo '{}' \;
done < test.csv
echo $file
运行正常,但是find
无法正确搜索它或运行我的-exec
命令。但是,如果将-name "$file"
替换为-name "*.ext"
,它将正常运行。如果我只在设置了变量的终端中运行find命令,它也可以正常运行。
编辑:
示例.csv和脚本将向控制台输出相同的内容:
Organization_createLocation.uim
Organization_listLocationPopup.properties
Organization_createLocation.properties
Organization_modifyLocationView.properties
Organization_listLocationPopup.uim
Organization_modifyLocationView.vim
运行bash -x ./script.sh
后,我的控制台显示为:
+ read file
+ echo $'Organization_createLocation.uim\r'
Organization_createLocation.uim
+ find '/Users/myname/Documents/project/software 6.2.0.1/webclient' -name
$'Organization_createLocation.uim\r' -exec echo '{}' ';'`
对于.csv中的每个项目
答案 0 :(得分:0)
每行末尾都有回车符。 bash -x ./myscript.sh
帮助我找到了回车符,dos2unix
解决了我的问题。现在运行良好。