带有'echo'和'awk'过滤器的'Exec'参数

时间:2011-11-30 23:11:30

标签: shell awk exec echo ksh

我希望在ksh脚本中使用这一行:

find . -type f -exec echo "{} $comment" | awk '{printf "%-30s %s", $1, $2}' \;

没有awk,这条线很有效:

find . -type f -exec echo "{} $comment" \;

当我添加awk来制作列时,我遇到了这个错误:

awk: fatal: cannot open file `;' for reading (No such file or directory)
find: missing argument to `-exec'

我找不到好的语法。伙计们,你们有什么想法吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

有两件我实际上无法理解的事情。

  1. \;代表什么?

  2. -printf "%-30s %s", $1, $2的内容是什么?

  3. 无论如何,试试吧。

    $> find . -type f -exec echo "{} $comment" \; | awk '{printf "%30s %s\n", $1, $2}'
    

答案 1 :(得分:0)

这可能对您有用:

 find . -type f -exec printf "%-30s %s\n" "{}" "$comment" \;