获取某些扩展名的文件列表,并将修改后的输出写入文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取某些扩展名的文件列表,并将修改后的输出写入文件相关的知识,希望对你有一定的参考价值。
我可以使用以下命令在我的目录中搜索具有特定扩展名的所有文件(顶级除外):
find . -mindepth 2 -type f -name '*.txt'
返回:
folder1/text1.txt
folder1/text2.txt
...
我想将这些文件名写入输出文件,比如说file-list.txt
并将内容更改为:
Text file folder1/text1.txt
Text file folder1/text2.txt
...
即将文件名连接成一些较长的字符串。我怎么用bash
做到这一点?我已经搜索并了解到sed
应该能够实现这一结果,但我无法自拔。
答案
使用GNU find,您可以使用-printf
操作格式化输出:
find . -mindepth 2 -type f -name '*.txt' -printf 'Text file %P
'
%P
在哪里
文件名,包含发现它的起始点的名称。
(而不是%p
,这将保持领先的./
)。要将输出输出到文件中,请在命令后附加重定向> file-list.txt
。
另一答案
附加GNU sed:
| sed 's/.*/Text file &/' >file-list.txt
以上是关于获取某些扩展名的文件列表,并将修改后的输出写入文件的主要内容,如果未能解决你的问题,请参考以下文章