ファイルがありますsales_$date.csv
。最初の列(ITEM)の最後の数字に基づいて10個のファイルに分割したいと思います。だから実際にファイルはsales_$date-01.csv
、、、sales_$date-02.csv
..など10個のファイルに分かれるようになります。また、すべてのファイルのヘッダーを保存する必要があります。列の長さ(ITEM)値は固定されていません。このプロセスは毎日45分ごとに実行する必要があります。以下は例です
sales_$date.csvファイル: FILE=sales_$日付項目、数量、店舗、BUYABLEFLAG 4000,1,13805,Y 4001,3,1456,N 5010,2,14534,Y 7200,5,14566,N 4002,6,46 ,9,34234,Y 7832,32,6575,N
sales_$date-01.csvゼロで終わる項目レコードが必要です(最初の列のITEM値を参照)。
ITEM,QTY,STORE,BUYABLEFLAG
4000,1,13805,Y
5010,2,14534,Y
7200,5,14566,N
sales_$date-02.csv1で終わる項目レコードが必要です(最初の列のITEM値を参照)。
ITEM,QTY,STORE,BUYABLEFLAG
4001,3,1456,N
5611,9,34234,Y
sales_$date-03.csv2で終わる項目のレコードが必要です(最初の列のITEM値を参照)。
ITEM,QTY,STORE,BUYABLEFLAG
4002,2,6534534,N
7832,32,6575,N
さらに、すべてのファイル名(例:sales_date-01、sales_date-02、sales_date-03)はFILE_NAMEという変数にあります。
ベストアンサー1
ファイルが大きいが大きくない場合は、次のコマンドを使用してファイルを10回繰り返すことができます。
for digit in 0 1 2 3 4 5 6 7 8 9 ; do
egrep "^ITEM,|^...$digit" sales.csv >sales-0$digit.csv
done