shell字符串對比文本


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
}

  

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM