つながる

つながる

したがって、何千ものサブディレクトリを持つファイルシステムがあります。

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}

おすすめ記事