我在使用下面的代码获取正确的输出格式时遇到了一些问题。输出应如下所示:
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
答案 0 :(得分: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
个字符,并且会进行调整
您需要为最长的字段设置足够的空间。