ループを使用してファイル名のソートを実行する方法

ループを使用してファイル名のソートを実行する方法

私の意図は、コードをできるだけ単純に保つことです。これには5つのファイルがあります。

A_1.CSV, A_2.CSV, A_3.CSV, A_4.CSV, A_5.CSV

次のコードはCSVファイルの最初の行を検索します。

コード:head.sh(ファイル名)

awk -F, 'NR==1 {print $0}' A_1.CSV > Header.csv
awk -F, 'NR==1 {print $0}' A_2.CSV >> Header.csv
awk -F, 'NR==1 {print $0}' A_3.CSV >> Header.csv
awk -F, 'NR==1 {print $0}' A_4.CSV >> Header.csv
awk -F, 'NR==1 {print $0}' A_5.CSV >> Header.csv

質問:

上記のコードでは、ファイル名のみがA_1からA_2に変更される式に進みます。ループを使ってコードを簡単にする方法

例:

 for (i=1;i<=5;i++)
      {
       A_[i].CSV >> Header.csv
      }

シェルスクリプトを使用してこのロジックを実装する方法がわかりません。

更新されたコード:

ディレクトリ内のファイル:/home/thiyagu/Desktop/

for file in 'A_*.CSV'
do
awk -F, 'NR==1 {print $0}' $file >> Newheader.csv
done

ベストアンサー1

何について

 awk 'FNR==1' A_*.csv > Header.csv

どこ

  • FNRファイル番号の記録ですか?
  • デフォルトの動作は、while行を印刷することです。
  • -F,個々のフィールドに興味がないのであきらめました。 (ただし、他にやることがあれば再度追加できます。)

おすすめ記事