1

我在使用下面的代码获取正确的输出格式时遇到了一些问题。输出应如下所示:

bb.pdf---------------color found
HIGHLY Rate.pdf------color found

等等……等等

我正进入(状态:

bb.pdf---------------color found
HIGHLY Rate.pdf---------------color found

好的,所以我正在尝试使用在运行时动态设置的printf %s%*.*s%s格式来获取变量 printf 格式。*.*在下面的代码中,在以 开头的行中printf,如果我设置了;

printf "%s%0.55s%s" $file_name $pad; gs -o - -sDEVICE............etc etc etc

然后代码运行。这告诉我我很接近让它发挥作用。问题是我无法获取0$var_format将它们的值发送到*.*,这会给我printf, 即的可变性质printf "%s%0.$var_format%s"。感谢任何有意见的人。

A.达斯

cat /cygdrive/i/PDF/$machine/results.csv | \
parallel -j200% --progress 'padlength=130;\
width=`echo {}| wc -c`;\
pad=$(printf '%0.1s' "-"{1..60});\
file_name=`echo -n {} | sed "s;.*/;;"`;\
var_format=$((padlength - width - 11 ));\
printf "%s%*.*s%s" $file_name 0 $var_format  $pad ;gs -o - -sDEVICE=inkcov {} 2>/dev/null | \
awk "/CMYK OK$/ {if (\$1>0 || \$2>0 || \$3>0) {print \"------------------------------\
color found\"; exit;} } \
END {print \"\"  }";' >> /cygdrive/i/PDF/$machine/color_report_summary.txt
4

1 回答 1

0

关于如何使用printf的示例awk

cat file
bb.pdf
HIGHLY Rate.pdf


awk '{printf "%-30s %s\n", $0,var}' var="color found" file
bb.pdf                         color found
HIGHLY Rate.pdf                color found

-30告诉第一个字段有一个30字符空间并进行了调整。
您需要为最长的字段设置足够的空间。

于 2013-11-06T06:39:45.643 回答