file1 file2的文本对比 逐行
#!/bin/bash list=`cat $file1` for line in `cat $file2` do array=(${line//,/}) #字符串逗号分隔 name=${array[0]} #获取数组第一个元素 if [[ $name == mac_* ]] #该元素是否是以mac_开头 then if [[ ! "${list}[@]"] =~ $name ]] ; then #file1是否包含该字符串 echo $name//打印 fi fi done
批量更改某个路径下的文件名
function modeFileName(){ for file in $1/* do echo "$file" if [[ $file =~ " " ]]#判断文件名是否包含空格 then continue fi if [ -f "$file" ] then if [[ "$file" == *PonyIW* ]]#文件名是否包含该字符串 then `rename "s/PonyIW/Kang/" "$file"`#文件名特殊字符串替换 fi else if [ "`ls -A $file`" != "" ]#空目录不操作 then modeFileName "$file" fi fi done }
批量修改文件里的字符串,替换为新的字符串
function modeCharaName(){ for file in $1/* do echo "$file" if [[ $file =~ " " ]]#判断文件名是否包含空格 then continue fi if test -f $file then sed -i "" "s/PonyIW/Kang/g" $file #将PonyIW替换为Kang else if [ "`ls -A $file`" != "" ]#判断是否是空目录 空目录不操作 then modeCharaName "$file" fi fi done }
修改文件名
function modeFolderName(){ for file in $1/* do echo $file if test -d $file then mv $file ${file/a/b}#文件重命名 fi done } function modeFolderName2(){ for file in $1/* do echo $file if test -d $file then mv $file ${file%+1*}#文件名截取'+1'左边的字符串 fi done }