这不起作用.可以在查找中完成吗?或者我需要xargs?
find -name 'file_*' -follow -type f -exec zcat {} \| agrep -dEOE 'grep' \;
Run Code Online (Sandbox Code Playgroud) x=$(find . -name "*.txt")
echo $x
Run Code Online (Sandbox Code Playgroud)
如果我在Bash shell中运行上面的代码,我得到的是一个包含多个文件名的字符串,用空格分隔,而不是列表.
当然,我可以进一步将它们分开来获取列表,但我确信有更好的方法可以做到这一点.
那么循环find执行命令结果的最佳方法是什么?
我正在尝试使用两个不同的可执行文件构造一个find命令来处理目录中的一堆文件.不幸的是,-exec在find上不允许使用管道,甚至\|因为shell首先解释了该字符.
这是我正在尝试做的事情(由于管道结束了find命令,因此无效):
find /path/to/jpgs -type f -exec jhead -v {} | grep 123 \; -print
Run Code Online (Sandbox Code Playgroud) 以下命令通过递归搜索当前目录和所有子目录来查找所有出现的"some string"
grep -r -n 'some string' .
Run Code Online (Sandbox Code Playgroud)
此命令以递归方式搜索当前目录和所有子目录,并返回*.axvw形式的所有文件
find . -name '*.axvw'
Run Code Online (Sandbox Code Playgroud)
我想把这两个命令放在一起,所以通过递归搜索当前目录,但只查看以'axvw'结尾的文件,我得到了所有'some string'.
当我尝试运行以下命令时,没有返回任何内容:
find . -name '*js' | grep -n 'some string'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?