linux - 不同文件夹中的同名文件

标签 linux bash file shell scripting

我正在寻找一个命令行,它可以对两个具有相同名称但位于不同文件夹中的文件执行一些操作。

例如如果

  • 文件夹 A 包含文件 1.txt2.txt3.txt、...<
  • 文件夹 B 包含文件 1.txt2.txt3.txt、...<

我想连接两个文件 A/1.txtB/1.txt,以及 A/2.txtB/2.txt, ...

我正在寻找执行此操作的 shell 命令:

if file name in A is equal the file name in B then: 
    cat A/1.txt B/1.txt
end if

对于文件夹 AB 中的所有文件,如果只有名称匹配。

最佳答案

对于简单的事情,下一个语法可能就足够了:

cat ./**/1.txt 

或者你可以简单地写

cat ./{A,B,C}/1.txt

例如

$ mkdir -p A C B/BB
$ touch ./{A,B,B/BB,C}/1.txt
$ touch ./{A,B,C}/2.txt

给予

./A/1.txt
./A/2.txt
./B/1.txt
./B/2.txt
./B/BB/1.txt
./C/1.txt
./C/2.txt

echo ./**/1.txt

返回

./A/1.txt ./B/1.txt ./B/BB/1.txt ./C/1.txt

所以

cat ./**/1.txt

将使用上述参数运行 cat... 或者,

echo ./{A,B,C}/1.txt

将打印

./A/1.txt ./B/1.txt ./C/1.txt #now, without the B/BB/1.txt

等等……

关于linux - 不同文件夹中的同名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17281045/

相关文章:

linux - 编写一个简单的类似 bash 的命令提示符,支持自动完成(处理 tab 键)

ruby - 如何使用 Pry 测试类似过滤器的 Ruby 脚本?

linux - 在Linux上更改apachectl

linux - 在Linux命令行中复制多个子目录中的文件

node.js - 如何在Ubuntu 16.04上使用node.js本地连接到postgresql?

linux - 在vi中正确配置退格键

regex - 匹配时如何查找、匹配和替换行尾

python - 如何读取文件并将每一行转换为字符串并查看用户输入中是否有任何字符串?

c++ - 懒惰的 __FILE__ 和 __LINE__ 人口

linux - 如何从 FAT 镜像恢复已删除的文件?