我需要分割具有特定格式的文件并稍后重命名......
Split 工作正常,但我无法在 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
Shell 变量不会在单引号内展开。处理这个问题的正确方法是在命令行中传入 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