我正在寻找一个命令行,它可以对两个具有相同名称但位于不同文件夹中的文件执行一些操作。
例如如果
- 文件夹
A
包含文件1.txt
、2.txt
、3.txt
、...< - 文件夹
B
包含文件1.txt
、2.txt
、3.txt
、...<
我想连接两个文件 A/1.txt
和 B/1.txt
,以及 A/2.txt
和 B/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
对于文件夹 A
和 B
中的所有文件,如果只有名称匹配。
最佳答案
对于简单的事情,下一个语法可能就足够了:
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/