mac:在许多目录中串联文本文件的内容;将目录名称附加到相应的文本文件内容

古柏葡萄

在以下目录结构中:

directory1中
-subdirectoryA
--- fileA.txt
-subdirectoryB
--- fileB.txt
subdirectoryC
--- fileC.txt

我想生成一个包含以下串联文本的文本文件:

subdirectoryA的名字
-文本包含fileA.txt内
subdirectoryB的名称
包含fileB.txt内-text
subdirectoryC的名字
-文本包含在fileC.txt

我能够使用以下命令来获取串联的文本文件的内容,但是信息我需要目录名称来组织输出:

find ./prefix_common_to_all_target_directories* -name "*.txt" -exec cat '{}' \; > concatenated_extracted_info.txt
五彩纸屑
#!/bin/bash
while read mydir; do
    echo "${mydir}:" >> output.txt
    cat $mydir/*.txt >> output.txt
done < <(find test* -type d )

这将遍历其中的所有目录directory1,并完全满足您的要求。请注意,您必须在中运行此脚本directory1


一些解释:

第一次find test* -type d运行,每行打印每个子目录的名称。然后将此输出馈送给每行read mydir运行while一次循环中的所有内容$mydir分配给每行(又名子目录名称))。
然后,循环中的第一行将目录名称写入一个冒号output.txt后跟一个冒号,使用>>表示“附加到文件”(如果文件不存在,则会创建该文件)。
循环中的第二行再次*.txt将子目录中每个文件的内容写入output.txt“追加模式”。


我的测试设置(上面的脚本另存为createfile.sh):

$ ls *
test1:
fileA.txt

test2:
fileB.txt

test3:
fileC.txt
$ bash createfile.sh
$ cat output.txt 
test1:
file content from dir1
test2:
test content from dir2
test3:
test content from dir3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

导入文本文件的内容和文本文件的名称,然后使用宏将其分隔到Excel中

如何回显目录中每个文本文件的内容?

从终端将目录中的文件列表打印到文本文件(而不是文本文件本身)

文本文件的内容被Powershell中的先前内容覆盖

使用方法将文本文件内容附加到Python中的字典中?

将文本文件的内容存储在数组中

在多个文件/目录中搜索字符串,然后打印文本文件的内容

从Bitbucket检索文本文件内容

文本文件内容更改事件

在我的JSP内容目录之外读取文本文件

获取目录名称并将其写入文本文件

目录内容与文本文件的逐行内容的diff样式比较

合并文本文件目录

如何在每个子目录中创建一个文本文件,以便该文本文件包含目录名称

创建单独的文本文件以列出每个目录和子目录中的内容

从文本文件创建目录

如何根据文本文件中的名称将文件移动到新目录?

将文本文件内容打印到列中

如何将所有目录名称写出到文本文件中

使用sed命令用目录名称替换文本文件

如何根据文本文件中的名称将文件符号链接到新目录?

附加到文本文件

如何从文本文件附加到数组内容?

将文本文件的内容导入 Python 中的列表

删除文本文件中的内容

附加到文本文件的回声

将一个文本文件内容附加到另一个文本文件时,“s”错误的未知选项

将文本逐行附加到文本文件 Python

将文本文件内容添加到列表列表中