【发布时间】:2010-10-17 01:15:51
【问题描述】:
我想在 find 给出的文件列表中输出前 10 行 AWK 命令, 使用这个 sn-p:
$ find . -name "*.txt" -print -exec awk '$9 != ""' \| head -n10 {} \;
还要注意,我想打印出正在处理的文件名。
但是为什么我会收到这样的错误:
awk: cmd. line:2: fatal: cannot open file `|' for reading (No such file or directory)
./myfile.txt
正确的做法是什么?
我尝试在管道之前不使用反斜杠。还是报错:
find: missing argument to `-exec'
head: cannot open `{}' for reading: No such file or directory
head: cannot open `;' for reading: No such file or directory
【问题讨论】:
-
请说明您要做什么。看来您正试图同时实现两件事。
-
@YuvalF: 1. 使用 AWK 过滤掉第 9 列中包含 "" 的行; 2. 仅显示前 10 行 - 在过滤器之后。
-
试试我的更新解决方案。
-
再次使用文件名打印作为分隔符。