具有升序后缀的 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_1
、folder_2
、folder_3
和mv ASOFJ.txt folder_1
、mv BJWIF.txt folder_2
、mv 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)
ls -1 | sort -V > txt_list
和
cat txt_list
给予
ASOFJ.txt
BJWIF.txt
CWORI.txt
...
我想 mkdir
后缀升序排列,例如 folder_1
、folder_2
、folder_3
和mv ASOFJ.txt folder_1
、mv BJWIF.txt folder_2
、mv 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
的文件夹
- 将元素移动到文件夹
- 加 1 到
#!/bin/bash
counter=1
while read line
do
mkdir "folder_${counter}" && mv $line "folder_${counter}"
((counter++))
done <<< $(ls -1 | sort -V)