该脚本在ubuntu Linux上正常运行,我可以调用bin_packing.awk,但是当我尝试在unix solaris上运行该脚本时,出现错误:
find: bad option -printf find: [-H | -L] path-list predicate-list awk: syntax error near line 1 awk: bailing out near line 1
这是可在ubuntu上运行的脚本
$ find . -type f -iname '*pdf' -printf "%s %p\n" \
| awk -v c=100000 -f bin_packing.awk
我已经尝试过了,但是没有用| awk ... part
$ find . -type f -name '*.pdf' -print | perl -lne '$,=" "; @s=stat $_; print $s[7],$_' \
| awk -v c=100000 -f bin_packing.awk
答案 0 :(得分:4)
在现代系统上,您可以使用GNU <div class="box">
<div class="column">
<div class="columnBackground">
<h3 class="h3Color">We multiply your impact</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
<div class="column">
<div class="columnBackground">
<h3 class="h3Color">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</h3>
<p>Some info</p>
</div>
</div>
<div class="column">
<div class="columnBackground">
<h3 class="h3Color">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</h3>
<p>Some info</p>
</div>
</div>
</div>
或GNU stat
来提取大小,而无需执行诸如解析find
之类的可怕事情。
不幸的是,您没有使用现代系统,所以该做些糟糕的事情了。幸运的是,大小是ls
的字段之一,只要您使用的平台不允许出现类似疯狂的事情,就可以对它进行半可靠地解析(一次仅对一个文件运行一次)用户名带有空格。
ls
如果find . -type f -iname '*.pdf' -exec bash -c '
for name; do
read -r _ _ _ _ size _ < <(ls -l -- "$name")
printf "%s %s\n" "$size" "$name"
done
' _ {} + | awk -v c=100000 -f bin_packing.awk
语法不起作用,则可以将-exec ... {} +
更改为+
,以使其速度更慢但更兼容。
答案 1 :(得分:1)
如果您具有最新版本的Solaris,则可以使用find
的{{1}}选项。对于较早的Solaris,请使用-print
(对于GNU查找)。