具有升序后缀的 mkdir 和 mv 一个文件到每个文件夹

mkdir with ascending sequential suffix and mv one file into each folder

ls -1 | sort -V > txt_list

cat txt_list

给予

ASOFJ.txt
BJWIF.txt
CWORI.txt
...

我想 mkdir 后缀升序排列,例如 folder_1folder_2folder_3

mv ASOFJ.txt folder_1mv BJWIF.txt folder_2mv CWORI.txt folder_3

我试过了

num=0 ; while read p ; do ( num=$(expr $num + 1) && mkdir "folder_"$num && mv $p "folder_"$num ) ; done < txt_list

但是没有用。

您对执行上述操作的单行有任何想法吗?

谢谢。

let c=0; for i in $('ls'); do c=$((c+1)); mkdir -p folder_$c; mv $i folder_$c; done

我认为应该这样做。

解释:

  • 定义变量c
  • 遍历 ls 中的每个元素
    • 加 1 到 c
    • 创建后缀为 c
    • 的文件夹
    • 将元素移动到文件夹
#!/bin/bash

counter=1
while read line
do
    mkdir "folder_${counter}" && mv $line "folder_${counter}"
    ((counter++))
done <<< $(ls -1 | sort -V)