파일 분할 및 이름 바꾸기

파일 분할 및 이름 바꾸기

특정 형식의 파일을 분할하고 나중에 이름을 바꿔야 하는데...

분할은 잘 작동하지만 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

관련 정보