我想在一个命令中将 find 命令的输出与我的脚本之一一起使用。
我的脚本接受:
some-script --input file1.txt file2.txt file3.txt --output final.txt
Run Code Online (Sandbox Code Playgroud)
我想file1.txt file2.txt file3.txt
用`find 命令替换。
some-script --input `find ./txts/*/*.txt` --output final.txt
Run Code Online (Sandbox Code Playgroud)
但这会中断,因为 find 命令的输出中有新行。
Los*_*ity 10
Find 可以输出空格分隔的结果列表,而无需依赖其他命令:
find . -name someFile -type f -printf "%p "
Run Code Online (Sandbox Code Playgroud)
上面会在当前目录或任何子目录中找到所有名为“someFile”的文件,然后打印结果,不换行。
例如,给定这个目录树:
.../dir1/someFile.txt
.../dir1/dir2/someFile.txt
Run Code Online (Sandbox Code Playgroud)
find . -name '*.txt' -type f -printf "%p "
从 dir1运行将输出:
someFile.txt ./dir2/someFile.txt
Run Code Online (Sandbox Code Playgroud)
传递给上述find
命令的参数、选项和“动作”(即 -printf)可以修改如下:
-type f
选项,find
则将报告所有名为someFile
. 此外,find
的手册页列出了可以提供的其他参数,这些参数-type
将导致find
仅搜索目录、仅搜索可执行文件或仅搜索链接等...-printf "%p "
为-printf "%f "
打印文件名 sans path,或者再次查看find
的手册页以了解find
的printf
操作接受的其他格式规范。.
到某个其他目录路径以搜索其他目录树。这应该适用于您使用的任何 shell 脚本语言。
例子:
find . -type f | grep "\.cc" > ~/lolz.tmp
tr '\n' ' ' < ~/lolz.tmp
Run Code Online (Sandbox Code Playgroud)
你的例子:
find ./txts/*/*.txt > ~/lolz2.tmp
tr '\n' ' ' < ~/lolz2.tmp
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7251 次 |
最近记录: |