Shell腳本之文件批量創(chuàng)建與修改的簡(jiǎn)單方法
一、腳本要求
1.所有操作在/python下
2.批量創(chuàng)建12個(gè)以py后綴結(jié)尾的文件,文件名中必須包含_hcip,文件名除了_hcip固定字符串外,文件名還包含8個(gè)小寫(xiě)隨機(jī)的字符。
3.創(chuàng)建的12個(gè)文件后綴名改為大寫(xiě)的PY,固定字符串改為_(kāi)hcie
二、腳本內(nèi)容
#!/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
三、腳本運(yùn)行結(jié)果
[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格式為例
用腳本創(chuàng)建10個(gè)文件,以jpeg作為后綴,代碼如下:
#!/bin/sh for ((i=0;i<=10;i++)) do touch ${i}.jpeg done
執(zhí)行完上面的腳本后會(huì)看見(jiàn)在當(dāng)前目錄下生成10個(gè)文件,文件名的構(gòu)成為name.suffix
為了批量更改當(dāng)前目錄下的文件,我們需要遍歷當(dāng)前目錄,獲得需要更改文件的name,然后與新的文件后綴進(jìn)行拼接,形成新的文件名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!"
- oldsuffix是文件舊的后綴,newsuffix是文件新的后綴
- $(cmd)是命令替換,會(huì)在語(yǔ)句運(yùn)行時(shí)執(zhí)行cmd命令,然后返回cmd命令的執(zhí)行結(jié)果;eval 的作用是再次執(zhí)行命令行處理(不是對(duì)一個(gè)命令執(zhí)行兩次),也就是將eval后跟的參數(shù)整合成正確的命令行命令執(zhí)行。$(eval pwd)執(zhí)行后返回的結(jié)果是腳本所在的目錄路徑。
- 在循環(huán)語(yǔ)句中我們使用cut命令將匹配的文件name剪切出來(lái)。cut命令從文件的每一行剪切字節(jié)、字符和字段并將其送至標(biāo)準(zhǔn)輸出。參數(shù)-d用于自定義分隔符,默認(rèn)為制表符,程序中的-d.表示以.作為分隔符;參數(shù)-f指定截取顯示哪個(gè)區(qū)域,-f1表示截取第一個(gè)區(qū)域,也就是文件名的name。
總結(jié)
到此這篇關(guān)于Shell腳本之文件批量創(chuàng)建與修改的文章就介紹到這了,更多相關(guān)Shell腳本文件批量創(chuàng)建修改內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- shell腳本實(shí)現(xiàn)統(tǒng)計(jì)文件大小、批量創(chuàng)建用戶(hù)的示例
- Linux shell利用sed如何批量更改文件名詳解
- Shell腳本實(shí)現(xiàn)批量替換文件內(nèi)容
- 詳解linux下批量替換文件內(nèi)容的三種方法(perl,sed,shell)
- Shell腳本批量修改文件后綴名代碼分享
- Shell腳本批量重命名文件后綴的3種實(shí)現(xiàn)
- shell腳本中使用iconv實(shí)現(xiàn)批量文件轉(zhuǎn)碼的代碼分享
- Shell腳本遍歷目錄并批量修改文件編碼
- shell批量創(chuàng)建文件并重新命名的實(shí)例代碼
相關(guān)文章
Linux中的host命令應(yīng)用實(shí)例詳解
這篇文章主要介紹了Linux中的host命令應(yīng)用舉例的相關(guān)資料,需要的朋友可以參考下2017-07-07Shell腳本中使用for循環(huán)和cat命令實(shí)現(xiàn)按順序合并文件
這篇文章主要介紹了Shell腳本中使用for循環(huán)和cat命令實(shí)現(xiàn)按順序合并文件,本文先是用sed命令來(lái)實(shí)現(xiàn),發(fā)現(xiàn)不能完成需求,后使用for循環(huán)解決,需要的朋友可以參考下2015-01-01一個(gè)監(jiān)控網(wǎng)卡流量的shell腳本
這篇文章主要為大家分享一個(gè)簡(jiǎn)單的監(jiān)控流量腳本,需要的朋友可以參考下2016-08-08Linux?shell進(jìn)行文件解壓,復(fù)制和移動(dòng)詳解
Linux下進(jìn)行文件的解壓、復(fù)制、移動(dòng)應(yīng)該是最常見(jiàn)的操作了。尤其是我們?cè)陧?xiàng)目中使用大量的數(shù)據(jù)集文件時(shí)。本文我們就來(lái)細(xì)數(shù)用Shell進(jìn)行文件操作的這些坑2022-05-05監(jiān)視磁盤(pán)使用情況的Shell腳本(本地+遠(yuǎn)程)
任何一個(gè)分區(qū)使用到90%就發(fā)送一個(gè)郵件給指定的收件人,到95%就在郵件主題出警告(warning),說(shuō)明發(fā)送郵件程序EMAIL2013-01-01完美解決Linux搭建sftp出現(xiàn)Write failed:Broken pipe的問(wèn)題
下面小編就為大家?guī)?lái)一篇完美解決Linux搭建sftp出現(xiàn)Write failed:Broken pipe的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06一天一個(gè)shell命令 文本操作系列-linux dd使用教程
dd 是 Linux/UNIX 下的一個(gè)非常有用的命令,作用是用指定大小的塊拷貝一個(gè)文件,并在拷貝的同時(shí)進(jìn)行指定的轉(zhuǎn)換2016-05-05