我需要使用 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}'