Shell脚本之文件批量创建与修改的简单方法
短信预约 -IT技能 免费直播动态提醒
一、脚本要求
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!"
- oldsuffix是文件旧的后缀,newsuffix是文件新的后缀
- $(cmd)是命令替换,会在语句运行时执行cmd命令,然后返回cmd命令的执行结果;eval 的作用是再次执行命令行处理(不是对一个命令执行两次),也就是将eval后跟的参数整合成正确的命令行命令执行。$(eval pwd)执行后返回的结果是脚本所在的目录路径。
- 在循环语句中我们使用cut命令将匹配的文件name剪切出来。cut命令从文件的每一行剪切字节、字符和字段并将其送至标准输出。参数-d用于自定义分隔符,默认为制表符,程序中的-d.表示以.作为分隔符;参数-f指定截取显示哪个区域,-f1表示截取第一个区域,也就是文件名的name。
总结
到此这篇关于Shell脚本之文件批量创建与修改的文章就介绍到这了,更多相关Shell脚本文件批量创建修改内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341