複数のファイルに分割する必要がある大容量ファイルがあります。
使ってsplit
いるのに効果がいい
file=home/sap/dim/deltafile.D2017313.T100058932IDL.gz
gunzip -c ${file} | split -l 10000000 -d -a 4 - ${file%/*}/"working".$v_procid.`basename ${file%.*}`.part.
awk
それはまたそれと連携します。しかし、変数を渡すとawk
失敗します。
gunzip -c ${file} | awk 'NR%10000000==1 {x="F" ++i} {print > x}'
awk
F1
、F2
…というファイルを作成します。
変数を使用する必要がありましたが、さまざまな例をすべて試しました。不運。
ベストアンサー1
awk
を使用してデータを渡すことができ-v var=value
、-vオプションは任意の数だけ存在できます。
awk -v foo=FOO 'END {print foo}' </dev/null
awk -v foo=FOO -v bar=BAR 'END {print foo, bar}' </dev/null
通常どおり、割り当ての一部としてシェル変数などを使用することもできます。
awk -v bar="$PWD" 'END {print bar}' </dev/null
file=home/sap/dim/deltafile.D2017313.T100058932IDL.gz
awk -v bar="${file%/*}" 'END {print bar}' </dev/null