フォルダ内のすべてのファイルからデータを検索する

フォルダ内のすべてのファイルからデータを検索する

パイプ(|)で区切られたデータを含むフォルダがあります。ファイル名とともに、フォルダ内の各ファイルの最初の行の8番目の列のリストが必要です。これらすべてのデータを1つのファイルにまとめることができれば良いでしょう。

ベストアンサー1

ファイルを転送するには、awkシェル globstar を使用できます。必要な-Fフィールド区切り文字を定義するために使用できます。-F'|'最初の行だけを取得する場合は、次のものを使用するだけでnextfile十分です。だから私たちはこれを行うことができます:

awk -F'|' '{print FILENAME,$8;nextfile}' ./*

ファイルがあるフォルダーから。

nextfileサポートされない可能性があることを確認してください。たとえば、Stephaneが指摘したように、Debianとその派生製品にはオプションのmawkない古いバージョンが付属していますnextfile。より移植可能なawkコードが必要な場合は、変数を利用できますFNR。たとえば、

awk -F'|' 'FNR==1{print FILENAME,$8}'  ./*

おすすめ記事