从文件读取的文件名未获得正确的值

Laxman Singh Rajpurohit

我有一个脚本,如下。

要处理的文件存储在一个文件中images.txt该文件逐行读取。第一个echo命令正确显示文件名,但随后的ImageMagick命令无法处理图像,表明未找到该文件。为什么?

#!/bin/bash
filename="images.txt"
while read -r line
do
echo "line is $line"
# width
width="$( identify -format "%w" "$line" )" 
# height
height="$( identify -format "%h" "$line" )"
echo "$width X $height "
exit 1
if [ $width -lt 250 -a $height -lt 250 -a $width -lt $height ]
then
    echo "1"        
    convert $line -resize 250 $line

elif [ $width -lt 250 -a $height -lt 250 -a $width -gt $height ]
then
    echo "2"        
    convert $line -resize x250 $line
elif [ $width -lt 250 ]
then
    echo "3" 
    convert $line -resize 250 $line
elif [ $height -lt 250 ]
then
    echo "4"
    convert $line -resize x250 $line
else
    echo "All is Well" 
fi
done < "$filename"

输出:

line is v/347/l_ib-dfran035__62594_zoom.jpg
': No such file or directory @ error/blob.c/OpenBlob/2589._zoom.jpg
希恩

从错误行(': No such file...而不是'filename': No such file...来判断,问题可能出在您的images.txt文件中,该文件的行以CR-LF终止(即,images.txt来自Windows世界)。

因此,您的line变量(文件名)以CR不正确(回车符)(没有此类文件...)结尾而且,当它显示在屏幕上时,由于嵌入了控制字符CR,所以打印从行的开头继续,并覆盖文件名。

更改的格式images.txt,使其行以LF终止(dos2unix例如,使用该实用程序),或以bash过滤掉结尾的CR。

[更新]如果您选择在bash中过滤掉CR,则理想情况下可以执行以下任一操作:

  • read -r -d $'\r' line
  • 或者,紧接在read -r lineline=${line%$'\r'}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Python 3.8.1中读取文本文件时未获得所需结果

来自分类Dev

从主机到设备的 PyCUDA 值未获得正确值

来自分类Dev

Angular Dropdown所选项目未获得正确的值

来自分类Dev

数组输入周期未获得正确的值

来自分类Dev

输入类型文件-未获得边框底线

来自分类Dev

活动未获得正确的捆绑

来自分类Dev

活动未获得正确的捆绑

来自分类Dev

飞镖未获得输入值

来自分类Dev

Spinner 未获得选定值

来自分类Dev

合并 TFS 签入策略以获得正确的文件名

来自分类Dev

slim从其文件显示JSON响应,调用文件似乎从未获得响应

来自分类Dev

Linq-to-SQL dbml DateTimeOffset列自动生成的值未获得正确的时区

来自分类Dev

Linq-to-SQL dbml DateTimeOffset列自动生成的值未获得正确的时区

来自分类Dev

在数组位置移动值时未获得正确的输出

来自分类Dev

使用queryProcessInstancesCount方法调用时,Camunda BPM中未获得正确的值

来自分类Dev

上载文件但未获取文件名

来自分类Dev

从文件名读取日期

来自分类Dev

For循环读取文件名

来自分类Dev

grep在多个文件上出现问题,未获得所需的输出

来自分类Dev

MVC控制器未获得正确的参数值

来自分类Dev

Python-点类未获得正确的输出

来自分类Dev

TimeSpan未获得正确的剩余时间

来自分类Dev

在Yaml模板中未获得正确的输出

来自分类Dev

在JTable中搜索-未获得正确的输出

来自分类Dev

片段未获得正确的控制器

来自分类Dev

在横向方向上未获得正确的UILabel大小

来自分类Dev

附加内容未获得正确的CSS样式

来自分类Dev

读取文件名部分未知的文件

来自分类Dev

读取所选文件的文件名