shell脚本重命名
① linux shell 脚本编程实现 将指定的目录的所有*.gif文件都重命名为*.jpg 利用字符串提取和修改来实现
1.touch一个脚本文件rfe.sh: touch rfe.sh
2.编辑mv.sh,把你找到的内容添加到脚本中:vi rfe.sh
3.给脚本执行的权限:chmod +x rfe.sh
4.执行:./rfe.sh
② 如何用shell脚本重命名不同目录下具有相同文件名的文件
看看你的Linux是不是debian,在这个版本下有个命名MMV
如果没有可以这样安装 新建文件夹命令查看《Linux就该这么学》都是一样的
mmv 程序可在基于 Debian 的系统的默认仓库中使用。 要想在 Debian、Ubuntu、Linux Mint 上安装它,请运行以下命令:
$ sudoapt-get install mmv
③ 如何使用shell脚本远程登陆重命名
对你的这个问题,我有以下疑问:
1、远程登陆的服务器是否支持mv的命令?
2、使用什么方式登录服务器(ftp/telnet)
④ 怎么用shell脚本将文件名改名
修改文件名可以有不同的命令方式,比如rename, mv都可以实现
对于单个的文件,可以直接使用以上的命令,那如果有大量的类似格式的文件名需要修改成其他格式的,该如何呢?
比如某次测试后,保存的文件为 Lan1.txt, Lan2.txt,....Lan100.txt
这一百个文件需要在前面添加前缀变成类似 ch7_Lan1.txt,如果你还想使用mv来一个一个...多痛苦啊
当前文件夹下,文件修改有4种方式
1. 使用while Loop加 ${//}来实现Lan到 ch7_Lan的替换
点击(此处)折叠或打开
find . -name "Lan*txt" -type f | read files
do
new=${files/Lan/ch7_Lan}
mv $files $new
done
2. 充分利用 awk的分隔符功能来实现
点击(此处)折叠或打开
ls *Lan* | awk 'BEGIN{FS="Lan";OFS="ch7_Lan"}{printf "mv "$0" ";$1=$1;print $0}' | sh
首先,修改 FS和 OFS,输入和输出的分隔符
其次,使用 awk中的命令,拼接 “mv Lan1.txt ch7_Lan1.txt”这条命令
最后,使用|sh来执行一个 shell命令来完成 mv动作
其中,$1=$1是必须的,这个是完成 Lan===> ch7_Lan的关键(其实是可以使用 $2=$2等来替换,只要一个赋值动作而已)
奇怪的是,难道没有赋值动作,分隔符的改变就不能检测出来么??
3. 使用 awk的内置命令,gsub和 system来实现替换和命令执行
点击(此处)折叠或打开
ls "*Lan*" | awk '{org=$0;gsub("Lan", "ch7_Lan");system("mv "org" "$1)}'
首先保存原始的数据
其次修改 Lan为 ch_Lan
最后执行mv动作
⑤ 使用shell对文件重命名
需要把上面2018年度下面的每个子目录的文件重命名,命名规则是就是改为1.jpg到n.jpg
用程序实现的思路是下面这样
使用的时候,将root_dir改成对应的目录,然后执行这个sh文件就可以了
⑥ linux shell脚本判断某个文件的大小,符合条件则备份并重命名
cat test.sh
#!/bin/sh
file=$1
file_size=` $file | awk '{print $2}'`
if [ $file_size -ge 10485760 ]
then
cp -p $file $file-bak
fi
chmod +x test.sh
./test.sh 1.txt
逐行解释
1.
查看脚本文件test.sh
2.
定义脚本默认用sh执行
3.
将文件路径赋予file变量。$1
表示位置变量即下面的1.txt
4.
计算文件大小并赋予file_size变量
5.
如果文件大小大于等于10m.
10485760为10m,-ge为大于等于。
6.
if语法关键字
7.
将文件重命名备份
8.
if语法关键字
9.
空行
10.
赋予脚本test.sh可执行权限
11.
执行脚本,输入位置变量1.txt.
⑦ linux shell 文件如何重命名-具体在里面---很简单
需要准备的材料分别是:电脑、linux连接工具。
1、首先连接上linux主机,进入命令行状态。
⑧ Shell 文件重命名、替换字符
1.文件重命名
场景模拟:把文件夹BeiJing修改成HangZhou
2.替换字符
场景模拟:把readme.txt文件中,所有“name=”替换成“name=Jaychou”