我有一个包含20个子文件夹的文件夹,每个子文件夹包含一个文件。我想从子文件夹中读取所有20个文件并将它们附加到另一个文件。 我该怎么办?这有什么awk命令吗? python / perl脚本或linux命令都非常有用
答案 0 :(得分:1)
最简单的方法可能是(除非你需要比文件内容更多的信息):
cat <directory>/*/* >> <resulting_file>
答案 1 :(得分:0)
使用find命令,您可以使用它来限制目录路径/文件类型,修改时间等。 find命令用于默认递归搜索(即)从目录开始直到树的最后一个子节点。
在您的情况下,我假设您正在寻找任何文件。你可以这样做。
find <PATH from where to search> -type f > log file # adding filters that you are looking for files.
Ex: find /users/hero/parent -type f > listoffiles.log
如果您要查找任何特定类型的文件,例如日志文件(或)c文件等,您可以添加如下所示的过滤器。
find /path -type f -name *.log > listoflogfiles
注意:默认情况下,请执行递归搜索。 希望这会有所帮助:)
答案 2 :(得分:0)
使用python(3),您可以使用以下代码: 它首先打开新的target_file,然后打开每个source_file并将其内容写入target_file。
import os
path_with_subdirs = '/dir/with/subdirectories'
source_files = [os.path.join(dp, f) for dp, dn, filenames in os.walk(path_with_subdirs) for f in filenames]
target_file = '/target/location/output_file.txt'
with open(target_file, 'w') as target:
for source_file in source_files:
with open(source_file, 'r') as source:
[target.write(line) for line in source]