csvファイルがあるので、より小さなファイルに分割する必要があります。 Split -l 20000 test.csv 問題ありません。私の問題は、ファイルに別のヘッダーが含まれていることです。たとえば、+-1000行ごとに分割したいのですが、給与見出しの後に分割し、新しいファイルをcustヘッダーで始める必要があります。
顧客ヘッダー,xxx,xxxxxx,xxxxxx txn ヘッダー,xxxx,xxx,,xxxx,xxxxx,,xxx 詳細タイトル、xxxx、xxxx、xxxxxx、xxxx、xxxx 詳細タイトル,xxxxxxxx,xxxxxxxxxx,xxx,, 支払名、、、、、、xxxx、xxxxx 顧客ヘッダー,xxx,xxxxxx,xxxxxx txn ヘッダー,xxxx,xxx,,xxxx,xxxxx,,xxx 詳細タイトル、xxxx、xxxx、xxxxxx、xxxx、xxxx 支払名、、、、、、xxxx、xxxxx 顧客ヘッダー,xxx,xxxxxx,xxxxxx txn ヘッダー,xxxx,xxx,,xxxx,xxxxx,,xxx 詳細タイトル、xxxx、xxxx、xxxxxx、xxxx、xxxx 支払名、、、、、、xxxx、xxxxx
ベストアンサー1
あなたはこれを行うことができますawk
:
awk -vfilename=output -vcut=1000 '
BEGIN { nl=0; nf=1; f=filename "." nf;}
++nl >= cut && /^cust header,/ {
close(f); nl=0; f=filename "." ++nf}
{print > f}' < file
数が(ここでは1000)より大きく、cut
現在の行で終わると表示される行数を記録しますcust header,
。出力ファイル名はoutput.1
、、、output.2
...(filename
変数)です。