批量創建用戶與批量文件重命名
批量創建用戶與批量文件重命名
批量創建用戶與批量文件重命名
1. 批量創建用戶
如果需要批量創建用戶,且用戶名為stu01-stu10,用戶密碼為隨機的10位密碼。
1.1 分析解答
如果用戶名為stu01的話,我們可以采用for循環,直接變量范圍為01-10,密碼隨機的話我們可以采用系統默認的隨機變量RANDOM,因為默認的RANDOM只有5位數字,因此我們可以給它md5加密,然后取其中的8位字符當做密碼。當然我們也可以不用循環,直接使用命令拼接的方式完成,stu01可以直接用seq或者{}來完成。
1.2 for循環完成
for (( n=1;n<11;n++));do useradd stu0$n && echo `echo $RANDOM |md5sum|cut -c "1-10"`|tee -a newpasswd.txt |passwd --stdin stu0$n;done;
[root@maiyat home]# for n in atu{01..10};do useradd $n && echo `echo $RANDOM|md5sum|cut -c "1-10"`|tee -a a3.txt|passwd --stdin $n;done;
1.3 awk命令拼接完成
seq -f atu%02g 10 |awk '{print "useradd"" " $0";" "echo `echo $RANDOM |md5sum|cut -c "1-10"`|tee -a a2.txt |passwd --stdin "$0 }' |bash
echo atu{01..10} |tr " " "\n" |awk '{print "useradd"" " $0";" "echo `echo $RANDOM |md5sum|cut -c "1-10"`|tee -a a2.txt |passwd --stdin "$0 }' |bash
1.4 sed命令拼接完成
echo atu{01..10} |tr " " "\n" |sed -r 's#(.*)#useradd \1;echo `echo $RANDOM |md5sum|cut -c "1-10"`|tee -a a1.txt |passwd --stdin \1 #g' |bash
[root@maiyat home]# seq -f atu%02g 10 |sed -r 's#(.*)#useradd \1;echo `echo $RANDOM |md5sum|cut -c "1-10"`|tee -a a1.txt |passwd --stdin \1 #g' |bash
2. 批量重命名文件
例如在當前目錄下有3個文件,文件都是有隨機數字加上stu.jpg結尾的,現在需要把這些文件全部重命名,將stu去掉。
2.1 具體分析
如果重命名我們可以采用rename,rename的使用方法是call: rename from to files...,我們把需要改變的內容放在from這里,把需要改成什么樣的放在to這里,以及我們可以采用mv命令,利用awk或者sed進行命令拼接的方式完成。
2.2 采用rename方式完成
[root@maiyat tmp]# ls
149323stu.jpg 19701stu.jpg 270602stu.jpg
[root@maiyat tmp]# rename "stu" "" *
[root@maiyat tmp]# ls
149323.jpg 19701.jpg 270602.jpg
2.3 采用awk命令拼接方式完成
[root@maiyat tmp]# ls
140491stu.jpg 14052stu.jpg 282903stu.jpg
[root@maiyat tmp]# ls |awk -F "stu" '{print "mv"" "$0" "$1$2 }' |bash
[root@maiyat tmp]# ls
140491.jpg 14052.jpg 282903.jpg
2.4 采用sed命令拼接方法完成
[root@maiyat tmp]# ls
246792stu.jpg 255643stu.jpg 309491stu.jpg
[root@maiyat tmp]# ls |sed -r 's#((.*)stu(.*)$)#mv \1 \2\3#g' |bash
[root@maiyat tmp]# ls
246792.jpg 255643.jpg 309491.jpg