ファイルから文字列を抽出してマージする(Python)

ファイルから文字列を抽出してマージする(Python)

複数のサブフォルダがあるディレクトリがあり、すべてのサブフォルダには複数のテキストファイルが含まれており、これらのテキストファイルの形式は次のとおりです。

data01:data02

後で data02 を抽出し、:ルートディレクトリの単一ファイルにエクスポートする必要があります。抽出は完了しましたが、複数のディレクトリとファイルでどのように実行しますか?

ベストアンサー1

「find」と「awk」を使用して、次のコマンドラインをカスタマイズできます。

find FOLDERLIST -type f -iname "PATTERN" \
     -exec awk -F":" 'NF>1 {print $2}' "{}" \; > /PATH/TO/RESULTFILE

どこ

  • FOLDERLISTは、再帰的に検索する最上位フォルダのスペースで区切られたリストです。ここで、「現在のフォルダ」は点です(find)。 - Fを入力してください...
  • 「-type f」はファイル検索にのみ使用されます。
  • PATTERNは関心のあるファイルの一般的なパターンです。たとえば、アスタリスク「*」はすべてのファイルを検索し、「*.csv」はCSVファイルを探します。
  • /PATH/TO/RESULTFILE は、ルートディレクトリにある結果ファイルの名前です。
  • 「awk」部分は、「:」で見つかったすべてのファイルを分割し、空の結果をスキップします。

編集:Steeldriverが提案したように、null結果チェックをNF> 1に調整しました。

おすすめ記事