我想在一个命令中将 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 次 |
| 最近记录: |