GNU与变量格式printf并行

时间:2013-11-06 02:29:21

标签: awk printf gnu-parallel

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

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

等等...等

我得到了:

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

好的,所以我正在尝试使用printf %s%*.*s%s格式的get变量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"。感谢任何有输入的人。

一个。 DAS

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

1 个答案:

答案 0 :(得分:0)

关于如何将printfawk

一起使用的例子
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个字符,并且会进行调整 您需要为最长的字段设置足够的空间。