分享兩個shell腳本實例--批量生成隨機字符文件名和批量改名

2019-10-30     波波說運維

概述

在計算機科學中,for循環(英語:for loop)是一種程式語言的疊代陳述,能夠讓程式碼反覆的執行。

它跟其他的循環,如while循環,最大的不同,是它擁有一個循環計數器,或是循環變數。這使得for循環能夠知道在疊代過程中的執行順序。今天主要用兩個實例來介紹下shell腳本的for循環。


1、批量生成隨機字符文件名

需求:使用for循環在/data目錄下批量創建10個html文件,其中每個文件需要包含10個字符,包含3個隨機小寫字母和3個隨機大寫字母加固定字符串hwb

#!/bin/bash
#############################################################
# File Name: make_file.sh
#############################################################

[ -d /data ] || mkdir -p /data
rpm -qa |grep pwgen &>/dev/null
if [ $? -eq 1 ]
then
yum install -y expect &>/dev/null
fi

cd /data &&\\
for i in {1..10}
do
#File_Name=`uuidgen |tr "0-9-" "a-z"|cut -c 1-10`
File_Name2=`mkpasswd -l 10 -c 3 -C 3`
touch ${File_Name2}_hwb.html
done

腳本結果:


2、批量改名特殊案例

將前面結果文件名中的hwb字符串全部改成linux(最好用for循環實現),並且將擴展名html全部改成大寫。

#!/bin/bash
#############################################################
# File Name: rename_file.sh
#############################################################

cd /data &&\\
File_name=`ls |sed -r 's#(.*)_hwb.html#\\1#g'`

for i in $File_name
do
if [ -f ${i}_hwb.html ]
then
mv ${i}_hwb.html ${i}_linux.HTML
else
echo "文件修改完成."
exit
fi
done

結果:


覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~

文章來源: https://twgreatdaily.com/zh-tw/USNzHG4BMH2_cNUgixHW.html