分割和重命名文件

分割和重命名文件

我需要分割具有特定格式的文件并稍后重命名......

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

相关内容