我想在find给出的文件列表中输出前10行的AWK命令,使用下面的代码片段:
$ 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
什么是正确的方法来做到这一点?
Nginx大标题响应
sysinfo结构在linux / kernel.h中
摄像头,vIDeo源对话框出现
包含windows上可能存在或不存在的标头
在webpack中使用CommonsChunkPlugin时,我们是否需要Etag和Last-ModifIEd标题?
我在pipe道前试了一下没有反斜杠。 它仍然给了一个错误:
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
将内核模块标题导出到用户空间
我如何获得sal.h
什么是WINVER?
在winbase.h中(第97行),函数式的macrosYIEld()是什么?
将Content-disposition标题仅设置到某个目录下的文件的附件中?
如果你想在查找的每个文件上运行一个Awk程序,每次只打印前10行。
$ find . -name "*.txt" -print -exec awk '$9 != "" && n < 10 {print; n++}' {} ;
当用find的-exec运行一个命令时,你不会得到像管道运算符(|)那样的好shell。 如果你喜欢,你可以通过显式运行一个子shell来获得它们,例如:
找 。 -name'* .txt'-exec / bin / sh -c“回显名为{} | head -n 15”的文本文件;
基于Ashawley的回答:
find . -name "*.txt" -print -exec awk '$9 != "" {print; if(NR > 9) exit; }' {} ;
它应该表现得更好,因为我们在第10条记录之后退出awk。
只使用awk应该工作:
find . -name "*.txt" -print -exec awk '{if($9!=""&&n<11){print;n++}}' {} ;
你也可以这样做:
find . -name '*txt' -print -exec awk 'BEGIN {nl=1 ;print filename} $9 !="" {if (nl<11) { print $0 ; nl = nl + 1 }}' {} ;
没有head 。
总结以上是内存溢出为你收集整理的通过查找命令在AWK上应用Unix头全部内容,希望文章能够帮你解决通过查找命令在AWK上应用Unix头所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)