合并不同文件夹中具有相同名称的文件

我是Linux的新手,我正在寻找一个命令来合并具有相同名称但来自不同文件夹的文件。像这样:

folder 1, folder l1

folder 1 contains folder 2 and files 1.txt, 2.txt, 3.txt, ... 

folder 2 contains files 1.txt, 2.txt, 3.txt, ...

我想合并文件夹1和子文件夹2中的两个文本,然后将它们放入文件夹l1中。

我懂了:

    ls ./1 | while read FILE; do

        cat ./1/"$FILE" ./1/2/"$FILE" >> ./l1/"$FILE"

    done

这似乎工作良好,合并了两个文件,但是,在文件夹l1中创建了一个新的空文件2,并在外壳上显示了两个警告消息:cat:./1/2:是目录cat:./ 1/2 / 2:没有这样的文件或目录

我想知道有关新文件2和警告消息的说明,更重要的是如何改进命令行或新解决方案,因为我有数十个文件夹1。

Codeforester

您的代码看起来还不错。它发出警告是因为您也尝试合并目录!您可以添加检查以跳过目录,例如下面的代码:

#!/bin/bash

cd 'folder 1'
for file in *.txt; do
  [[ ! -f $file ]] && continue      # pick up only regular files

  otherfile="folder 2/$file"
  [[ ! -f $otherfile ]] && continue # skip if there is no matching file in folder 2
  cat "$file" "$otherfile" > "folder l1/$file.merged"
done

引用上面的变量以防止单词分裂很重要

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

资产目录:访问不同文件夹中具有相同名称的图像

将多个文件移动到具有相同名称的不同文件夹

将一些具有相同名称的文件绑定到R中的不同文件夹中

将不同文件夹中具有相同名称的文件移动到一个文件夹中

添加到 PATH 的 2 个文件夹包含具有相同名称的不同文件

Powershell脚本可移动具有相同名称的不同文件类型以共享文件夹

列出具有相同名称的不同文件夹下的所有文件

在r中合并具有相同名称的文件,并将其写入R中的不同文件

在文件夹中合并具有相同名称的.csv

删除不同子目录中具有相同名称的文件夹的内容

如何通过使用unix命令在不同文件夹中合并多个具有相似名称的文件?

查找具有相同名称但在不同目录结构中的相同文件

合并两个具有不同文件夹名称的git分支

具有不同文件夹名称的mongodump

在不同文件夹中使用相同名称重命名文件

从bash-scipt中具有相同文件名的不同文件夹中加载多个文件

如何从C#中具有相同名称的文件夹中打开文件

具有相同名称但文件夹不同的Windows Phone类

如何将文件移动到具有相同名称的相应文件夹中?

msbuild复制具有相同文件夹名称的整个文件夹

在不同文件夹中查找同名文件

在 Windows 中删除具有相同名称但不同文件扩展名的文件差异的最快方法

在同一目录中列出具有相同名称的文件夹-Delphi

即使提供了不同的URL,也会下载具有相同名称的相同文件

如何在具有不同条目但同一列的文件夹中合并不同的 csv 文件?

检查JQUERY的同一文件夹中是否存在1个或多个具有相同名称但具有不同扩展名的文件

重命名许多子文件夹中具有相同名称的文件,例如data.csv,然后合并然后连接

在git的2个不同分支中合并2个具有相同名称的文件

将不同文件夹中的同名 CSV 文件合并到一个文件中