文件内容及文件名替换Shell-linux
来源:互联网 发布:京东秒杀软件安卓版 编辑:程序博客网 时间:2024/05/01 20:56
由于工作需要,需要对源码进行统一修改,因而做一这样一个小脚本,斩且把它命名为Xmen.sh
将下面脚本保存为:Xmen.sh
使用方式:./Xmen.sh 工作目录 被替换文本 替换后文本 日志存放路径
举例: ./Xmen.sh /src AAA BBB /log
作用:1.文件名修改:/src下文件名为AAA被修改成BBB
2.内容替换:/src下文本中出现AAA处都将替换成BBB
3.修改日志存放在:/log下中#!/bin/bashfunction xfile(){for file in ` ls $1`;do if [ -d $1"/"$file ];then local dirPath=${1} local dirName=${file} xfile $1"/"$file `echo $dirName |grep -q $INIT_RE_A` if [ $? -eq 0 ] then log ${dirPath}"/"${dirName} mv -f ${dirPath}"/"${dirName} ${dirPath}"/"${dirName/${INIT_RE_A}/${INIT_RE_B}} fi else local path=$1 local name=$file `echo $name |grep -q $INIT_RE_A` if [ $? -eq 0 ] then #echo "include" log ${path}"/"${name} mv -f ${path}"/"${name} ${path}"/"${name/${INIT_RE_A}/${INIT_RE_B}} fi fi _X_F_count=`expr $_X_F_count + 1` nbar $_X_F_count $_X_F_sumdone}function xcode(){ if [ ! -d $INIT_LOG_PATH ];then mkdir -p $INIT_LOG_PATH fi local para="s/"$1"/"$2"/g" local fromStr=`echo "$1" | sed "s/ /_/g"` local toStr=`echo "$2" | sed "s/ /_/g"` local logfile=${INIT_LOG_PATH}"/text-"$fromStr"-"$toStr".log" grep "$1" -rl $INIT_PATH >>$logfile if [ $? -eq 0 ] then local counter=0 local sum=`cat $logfile |wc -l` for i in `cat ${logfile}` do sed -i "$para" "$i" counter=`expr $counter + 1` nbar $counter $sum done #sed -i $para `grep $1 -rl $INIT_PATH` else local j=0 while [ $j -lt 101 ] do nbar $j 100 j=`expr $j + 1` done fi}function log(){ if [ ! -d $INIT_LOG_PATH ];then mkdir -p $INIT_LOG_PATH fi echo $1 >> $INIT_LOG_PATH"/file-"${INIT_RE_A}"-"${INIT_RE_B}".log"} xbar(){ local counter=$1 local _PROCEC=$2 tput cup $_PROCEC 0 if [ $counter -eq 1 ];then printf "[" fi tput cup $_PROCEC $counter printf "=>" tput cup $_PROCEC 101 printf "]%d%%" $counter}nbar(){ local idx=$1 local sum=$2; local counter=`echo "${idx}*100/${sum}" |bc` #echo $counter xbar $counter $_P}if [ $# -lt 4 ]; then echo "Usage: $0 source-dir to-replace-string replacement log-path [-Xcode]" echo "" echo "For example:" echo " $0 /source AAA BBB /log -Xcode" exitfiINIT_LOG_PATH=$4INIT_RE_A="$2"INIT_RE_B="$3"INIT_PATH=$1INIT_X_CODE=$5_X_F_sum=`ls -lR $INIT_PATH|grep "^[-d]"|wc -l`_X_F_count=0 echo "--------------------------------------------------------------------" echo "--------o-----o--o-------o--oooooooo--o-------o---------------------" echo "---------o---o---o-o---o-o--o---------o-o-----o---------------------" echo "----------o-o----o--o-o--o--o---------o--o----o---------------------" echo "-----------o-----o---o---o--oooooooo--o---o---o---------------------" echo "----------o-o----o-------o--o---------o----o--o---------------------" echo "---------o---o---o-------o--o---------o-----o-o---------------------" echo "--------o-----o--o-------o--oooooooo--o-------o---------------------" echo "--------------------------------------------------------------------"printf "\n"echo "Rename file and directory:"_P=`tput cols`echo $5if [ ! "$INIT_X_CODE" = "-Xcode" ]; then xfile $INIT_PATHfiprintf "\n"echo "Replace text"_P=`tput cols`xcode "$INIT_RE_A" "$INIT_RE_B"printf "\n"echo "Xmen has complete the task , bye bye !"printf "\n"echo "--------------------------------------------------------------------" echo "---------@@@@@@@@@@-------------------------@-------@---------------" echo "---------@--------@-------------------------@-----@-----------------" echo "---------@--------@-------------------------@---@-------------------" echo "---------@--------@-------------------------@-@---------------------" echo "---------@--------@-------------------------@---@-------------------" echo "---------@--------@-------------------------@-----@-----------------" echo "---------@@@@@@@@@@-------------------------@-------@---------------" echo "--------------------------------------------------------------------"
- 文件内容及文件名替换Shell-linux
- [常用shell命令] 批量替换文件内容和文件名
- shell 替换文件内容
- 文件名文件内容批量替换工具
- 递归批量替换文件名,文件内容
- Linux下通过shell批量替换文件内容
- linux 替换文件内容
- linux替换文件内容
- linux终端下修改文件名及文件内容的命令
- Linux下 批量转换文件名及文件内容的大小写
- Shell 文件名替换
- shell 文件名替换
- linux批量替换文件内容
- Linux批量替换文件内容
- Linux批量替换文件内容
- Linux批量替换文件内容
- Linux批量替换文件内容
- linux批量替换文件内容
- PC使用wireshark直接查看android手机上tcpdump捕捉到的数据包
- 杭电 HDU 2717 Catch That Cow
- iOS: NSNotification的方法notificationWithName:object:userInfo:
- 利用大纲级别自动生成目录的步骤
- C++ Primer 中文版 学习笔记(十)
- 文件内容及文件名替换Shell-linux
- UNIX环境高级编程——时间和日期
- STM32 UART1 DMA 发送数据
- hdu1323-Perfection
- android读写Sdcard
- Activity/Fragment/TabActivity/ActivityGroup bindSrvice绑定服务无效
- hdu 3715 (2-SAT+二分)
- 实践手记——调用人人新版API2 SDK在android平台上发布新鲜事及上传照片
- sring 与StringBuilder的区别