使用awk处理find命令的输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用awk处理find命令的输出相关的知识,希望对你有一定的参考价值。

我希望你能帮助我。

我需要找到一个特定的隐藏文件(.myfile),其内容是一些字符串,如“Hello”

目标是打印.myfile所在目录的名称,后跟其内容。

格式的例子

DIR1-->"Hello"
DIR2-->"Hello"
DIR3-->"Hello"

我的(错误)方法

我使用find命令如下:

find . -maxdepth 2 -type f -name ".myfile"

结果我得到:

./DIR1/.myfile
./DIR2/.myfile
./DIR3/.myfile

这是我想要的第一部分:-)。接下来我使用awk格式化输出:

find . -maxdepth 2 -type f -name ".*" | awk -F"/" '{print$2 "-->" $3}'

DIR1-->.myfile
DIR2-->.myfile
DIR3-->.myfile

现在,我被困在这里,因为我无法获得.myfile的内容

提前谢谢,佩德罗

答案

我不确定我理解你的问题,但听起来这就是你想要的:

find . -maxdepth 2 -type f -name ".*" -exec awk 'FNR==1{split(FILENAME,f,"/")} {print f[2] "-->" $0}' {} +
另一答案

这样的东西应该没问题:

$ find . -maxdepth 2 -type f -name '.*' -printf '%h -->' -exec cat {} ;

您可以通过向-printf提供相应选项来进一步微调查找输出,例如%f(用于文件名)等(请参阅man find,printf部分)

以上是关于使用awk处理find命令的输出的主要内容,如果未能解决你的问题,请参考以下文章

find/pg/grep/sed/awk命令

linux awk命令的使用

Linux 基础-文本处理命令

find、grep、sed、awk的使用

awk命令

文本处理工具awk