したがって、何千ものサブディレクトリを持つファイルシステムがあります。
304880.US
906T89.DE
032848.UK
023455.UKREGRESS
:
フォルダ内に1
、という名前の別の2
フォルダがある場合もあります3
。
各最終ディレクトリにはさまざまなテキストファイルが含まれていますoutput.txt
。
.UK
名前のすべてのディレクトリを見つけて、output.txt
すべてのファイルを1つのマスターファイルにマージしたいと思います。順序は重要ではありません。
例:
├── 032848.UK
│ ├── corrupted.txt
│ ├── errors.txt
│ ├── notfound.txt
│ ├── output.txt
│ └── rejected.txt
├── 135411.UK
│ ├── 1
│ │ ├── corrupted.txt
│ │ ├── errors.txt
│ │ ├── notfound.txt
│ │ ├── output.txt
│ │ └── rejected.txt
│ ├── 2
│ │ ├── corrupted.txt
│ │ ├── errors.txt
│ │ ├── notfound.txt
│ │ ├── output.txt
│ │ └── rejected.txt
│ └── 3
│ ├── corrupted.txt
│ ├── errors.txt
│ ├── notfound.txt
│ ├── output.txt
│ └── rejected.txt
├── 304880.US
│ ├── corrupted.txt
│ ├── errors.txt
│ ├── notfound.txt
│ ├── output.txt
│ └── rejected.txt
├── 906T89.DE
│ ├── corrupted.txt
: :
└── ...
ベストアンサー1
(f はマージが接続されていると仮定します.)
つながる
次のようにすることができます(探す):
find . -wholename '*.UK*/*output.txt' -exec cat {} >>concatenated.UK.txt +
またはグローバル位置指定を介して:
cat *.UK*/*{output.txt,/output.txt} >concatenated.UK.txt
またはより具体的に:
cat *.UK*/{output.txt,[123]/output.txt} >concatenated.UK.txt
リスト
find の場合は、次の方法で見つかった内容を確認できます。
find . -wholename '*.UK*/*output.txt'
グローバル例の場合:
printf '%s\n' *.UK*/{output.txt,[123]/output.txt}