Shell脚本之文件批量创建与更改的简单方式
更新时间:2021年06月27日16:06:21作者:jks212454
有时须要将文件内容进行更改,倘若文件数目不多可以一个一个更改,这么假如文件数目好多一个一个更改很麻烦,这篇文章主要给你们介绍了关于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作为后缀linux系统入门学习,代码如下:
#!/bin/sh for ((i=0;i<=10;i++)) do touch ${i}.jpeg done
执行完前面的脚本后会看到在当前目录下生成10个文件,文件名的构成为name.suffix
为了批量修改当前目录下的文件,我们须要遍历当前目录linux 修改脚本linux系统怎么样,获得须要修改文件的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命令linux 修改脚本,之后返回cmd命令的执行结果;eval的作用是再度执行命令行处理(不是对一个命令执行两次),也就是将eval后跟的参数整合成正确的命令行命令执行。$(evalpwd)执行后返回的结果是脚本所在的目录路径。在循环句子中我们使用cut命令将匹配的文件name剪切下来。cut命令从文件的每一行剪切字节、字符和数组并将其送至标准输出。参数-d用于自定义分隔符,默认为制表符,程序中的-d.表示以.作为分隔符;参数-f指定截取显示那个区域,-f1表示截取第一个区域,也就是文件名的name。总结
到此这篇关于Shell脚本之文件批量创建与更改的文章就介绍到这了,更多相关Shell脚本文件批量创建更改内容请搜索脚本之家曾经的文章或继续浏览下边的相关文章希望你们之后多多支持脚本之家!