Shell腳本之文件批量創建與修改的簡單方法

一、腳本要求

1.所有操作在/python下

2.批量創建12個以py後綴結尾的文件,文件名中必須包含_hcip,文件名除瞭_hcip固定字符串外,文件名還包含8個小寫隨機的字符。

3.創建的12個文件後綴名改為大寫的PY,固定字符串改為_hcie

二、腳本內容

#!/bin/bash
##########################################################
#File Name:create_file.sh
#Version:V1.0
#Aurhor:
#Emali:
#Created Time:2021-06-15 02:56:59
#Description: create files & modify files
##########################################################


if [ -d /python ];then
   cd /python
else
   mkdir /python
   cd /python
fi
for i in {1..12}
do
   file_name=$(echo $RANDOM |md5sum |cut -c 1-8)
   touch ${file_name}_hcip.py
done

for files in $(ls /python)
do
     file1=$(echo $files |cut -d '_' -f1)
     mv $files ${file1}_hcie.PY
done



三、腳本運行結果

[root@control python]# /scripts/create_file.sh 
[root@control python]# ll
total 0
-rw-r--r-- 1 root root 0 Jun 15 04:26 4272db00_hcie.PY
-rw-r--r-- 1 root root 0 Jun 15 04:26 51989a58_hcie.PY
-rw-r--r-- 1 root root 0 Jun 15 04:26 75075364_hcie.PY
-rw-r--r-- 1 root root 0 Jun 15 04:26 7a272319_hcie.PY
-rw-r--r-- 1 root root 0 Jun 15 04:26 7d76af2f_hcie.PY
-rw-r--r-- 1 root root 0 Jun 15 04:26 977e73d6_hcie.PY
-rw-r--r-- 1 root root 0 Jun 15 04:26 9e4386a0_hcie.PY
-rw-r--r-- 1 root root 0 Jun 15 04:26 a35d5337_hcie.PY
-rw-r--r-- 1 root root 0 Jun 15 04:26 b9cb6458_hcie.PY
-rw-r--r-- 1 root root 0 Jun 15 04:26 b9d3349e_hcie.PY
-rw-r--r-- 1 root root 0 Jun 15 04:26 c3e589a2_hcie.PY
-rw-r--r-- 1 root root 0 Jun 15 04:26 e4f82be8_hcie.PY

附:將jpeg格式文件改成jpg格式為例

用腳本創建10個文件,以jpeg作為後綴,代碼如下:

#!/bin/sh
for ((i=0;i<=10;i++))
do
    touch ${i}.jpeg
done

執行完上面的腳本後會看見在當前目錄下生成10個文件,文件名的構成為name.suffix

為瞭批量更改當前目錄下的文件,我們需要遍歷當前目錄,獲得需要更改文件的name,然後與新的文件後綴進行拼接,形成新的文件名name.newsuffix。

代碼如下:

#!/bin/sh
oldsuffix="jpeg"
newsuffix="jpg"
dir=$(eval pwd)

for file in $(ls $dir | grep .${oldsuffix})
    do
        name=$(ls ${file} | cut -d. -f1)
        mv $file ${name}.${newsuffix}
    done
echo "change jpeg to jpg successd!"

  1. oldsuffix是文件舊的後綴,newsuffix是文件新的後綴
  2. $(cmd)是命令替換,會在語句運行時執行cmd命令,然後返回cmd命令的執行結果;eval 的作用是再次執行命令行處理(不是對一個命令執行兩次),也就是將eval後跟的參數整合成正確的命令行命令執行。$(eval pwd)執行後返回的結果是腳本所在的目錄路徑。
  3. 在循環語句中我們使用cut命令將匹配的文件name剪切出來。cut命令從文件的每一行剪切字節、字符和字段並將其送至標準輸出。參數-d用於自定義分隔符,默認為制表符,程序中的-d.表示以.作為分隔符;參數-f指定截取顯示哪個區域,-f1表示截取第一個區域,也就是文件名的name。

總結

到此這篇關於Shell腳本之文件批量創建與修改的文章就介紹到這瞭,更多相關Shell腳本文件批量創建修改內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: