私の意図は、コードをできるだけ単純に保つことです。これには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,
個々のフィールドに興味がないのであきらめました。 (ただし、他にやることがあれば再度追加できます。)