如何抑制jpegtopnm的信息输出并仅显示目录内图片尺寸
解决方法
方法一:过滤原有命令的冗余输出
把jpegtopnm的提示信息(标准错误流)丢弃,再提取尺寸:
for file in *.jpg; do jpegtopnm "$file" 2>/dev/null | pnmfile | awk '{printf "%5d by %d\n", $3, $5}'; done
2>/dev/null:将jpegtopnm输出的WRITING PPM FILE这类冗余提示信息直接丢弃,只保留图片数据传递给pnmfileawk '{printf "%5d by %d\n", $3, $5}':从pnmfile的输出中提取宽和高,并用对齐格式输出,和你想要的结果样式一致
如果不需要数字对齐,可简化为:
for file in *.jpg; do jpegtopnm "$file" 2>/dev/null | pnmfile | awk '{print $3, "by", $5}'; done
方法二:用更简洁的工具(推荐)
如果系统安装了ImageMagick,直接用identify命令可以高效输出目标格式:
identify -format "%w by %h\n" *.jpg
%w代表图片宽度,%h代表高度,-format指定输出格式,直接得到无冗余的尺寸结果,无需多步管道处理。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

