awk 명령을 사용하여 파일을 분할하고 그에 따라 이름을 바꿔야 합니다. substring 명령을 사용하고 매개변수를 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:2:5} '{filename = filestem; print >> filename}' $file--$each
done
done
답변1
당신에게는 두 가지 선택이 있습니다
awk에 하위 문자열 적용
$ awk -v filestem="$file--$each" \ '{filename = substr(filestem, 3, 6);print >> filename}'
$file--$each
변수로 설정 한 다음 해당 변수를 부분 문자열로 묶습니다.$ filestem="$file--$each" $ awk -v filestem="${filestem:2:5}" \ '{filename = filestem; print >> filename}'