![파일 분할 및 이름 바꾸기](https://linux55.com/image/53683/%ED%8C%8C%EC%9D%BC%20%EB%B6%84%ED%95%A0%20%EB%B0%8F%20%EC%9D%B4%EB%A6%84%20%EB%B0%94%EA%BE%B8%EA%B8%B0.png)
특정 형식의 파일을 분할하고 나중에 이름을 바꿔야 하는데...
분할은 잘 작동하지만 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