通过查找命令在AWK上应用Unix头

通过查找命令在AWK上应用Unix头,第1张

概述通过查找命令在AWK上应用Unix头

我想在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头所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1155780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存