使用 awk 处理查找命令的输出
process the output of a find command with awk
希望你能在这方面帮助我。
我需要找到一个特定的隐藏文件 (.myfile),它的内容是像 "Hello"
这样的字符串
目标是打印 .myfile 所在目录的名称,然后是其内容。
格式示例
DIR1-->"Hello"
DIR2-->"Hello"
DIR3-->"Hello"
我的(错误)方法
我正在使用如下查找命令:
find . -maxdepth 2 -type f -name ".myfile"
结果我得到:
./DIR1/.myfile
./DIR2/.myfile
./DIR3/.myfile
这是我想要的第一部分:-)。接下来我使用 awk 格式化输出:
find . -maxdepth 2 -type f -name ".*" | awk -F"/" '{print "-->" }'
DIR1-->.myfile
DIR2-->.myfile
DIR3-->.myfile
现在,我被困在这里,因为我无法获取 .myfile 的内容
提前致谢,
佩德罗
像这样应该没问题:
$ find . -maxdepth 2 -type f -name '.*' -printf '%h -->' -exec cat {} \;
您可以通过向 -printf
提供相应的选项来进一步微调 find 的输出,例如 %f(用于文件名)等(参见 man find,printf 部分)
我不确定我是否理解你的问题,但听起来这就是你想要的:
find . -maxdepth 2 -type f -name ".*" -exec awk 'FNR==1{split(FILENAME,f,"/")} {print f[2] "-->" [=10=]}' {} +
希望你能在这方面帮助我。
我需要找到一个特定的隐藏文件 (.myfile),它的内容是像 "Hello"
这样的字符串目标是打印 .myfile 所在目录的名称,然后是其内容。
格式示例
DIR1-->"Hello"
DIR2-->"Hello"
DIR3-->"Hello"
我的(错误)方法
我正在使用如下查找命令:
find . -maxdepth 2 -type f -name ".myfile"
结果我得到:
./DIR1/.myfile
./DIR2/.myfile
./DIR3/.myfile
这是我想要的第一部分:-)。接下来我使用 awk 格式化输出:
find . -maxdepth 2 -type f -name ".*" | awk -F"/" '{print "-->" }'
DIR1-->.myfile
DIR2-->.myfile
DIR3-->.myfile
现在,我被困在这里,因为我无法获取 .myfile 的内容
提前致谢, 佩德罗
像这样应该没问题:
$ find . -maxdepth 2 -type f -name '.*' -printf '%h -->' -exec cat {} \;
您可以通过向 -printf
提供相应的选项来进一步微调 find 的输出,例如 %f(用于文件名)等(参见 man find,printf 部分)
我不确定我是否理解你的问题,但听起来这就是你想要的:
find . -maxdepth 2 -type f -name ".*" -exec awk 'FNR==1{split(FILENAME,f,"/")} {print f[2] "-->" [=10=]}' {} +