ファイルの分割と名前の変更

ファイルの分割と名前の変更

特定の形式のファイルを分割し、後で名前を変更する必要があります...

分割はうまく機能しますが、awkコマンドで$ file - $ eachを参照することはできません。

どのようなヒントがありますか?

for file in *.csv
do
  split -n 3 -d -a 2 "$file" "$file--"
  for each in $(seq -w 2 10)
  do
        echo $file--$each

  awk '{filename = $file--$each ".txt"  ; print >> filename}' $file--$each
  done
done

ベストアンサー1

シェル変数は一重引用符内では拡張されません。この問題を処理する正しい方法は、コマンドラインにawk変数を渡すことです。

for file in *.csv
do
  split -n 3 -d -a 2 "$file" "$file--"
  for each in $(seq -w 2 10)
  do
        echo $file--$each

  awk -v filestem="$file"--"$each" '{filename = filestem".txt";
  print >> filename}' $file--$each
  done
done

おすすめ記事