精华内容
下载资源
问答
  • 批量修改文件内容

    千次阅读 2018-06-29 14:57:47
    按照参考文件上的内容批量修改其他目录相同文件的对应内容#!/bin/bash #BOARD_104B_CV6586H_A50 #BOARD_104B_CV6586H_A50_BH #BOARD_104B_CV6586H_B #BOARD_104B_CV6586H_B50 #BOARD_104B_CV6586H_B_BH #BOARD_124B...

    按照参考文件上的内容批量修改其他目录相同文件的对应内容


    #!/bin/bash
    
    #BOARD_104B_CV6586H_A50
    #BOARD_104B_CV6586H_A50_BH
    #BOARD_104B_CV6586H_B
    #BOARD_104B_CV6586H_B50
    #BOARD_104B_CV6586H_B_BH
    #BOARD_124B
    
    targetBoard="BOARD_124B" #根据版型过滤
    srcDir=6486_Base #参考目录
    srcFile=`find ${srcDir} -name Customer_1.ini` #参考文件
    regionStart=
    regionEnd=
    indexVol="VolumeCurve" #音量曲线TAG
    exceptionOrder="6486_HA42_WET_V500HJ4-Q01_C2-W18026-SY 6486_HA42_WET_LSC400HN02-8-W18025-SY 6486_HA42_WET_T320HVN05.6-W18024-SY"
    function init()
    {
      #echo "[[[[init"
      rm findfile.txt
      rm targetDir.txt
      find ./ -name Customer_1.ini > findfile.txt #查找所有要修改的文件
    
      while read line #对所有查找到的文件按照版型过滤
      do
        tmp=`echo ${line%%/Files*}`
        #tmp=`echo $line | cut -d "/" -f 2`
        #echo ${tmp}
        grep -rwE "${targetBoard}" ${tmp}/order_setting > /dev/null
        if [ $? = 0 ];then
          echo ${tmp} | cut -d "/" -f 2 >> targetDir.txt
        fi
      done < findfile.txt
    
    #不同TAG下会有相同的flag,这里设定flag在文件的范围
      grep -n "^\[.*\]" ${srcFile} > alltag.txt
      regionStart=`grep -n "$indexVol" alltag.txt | cut -d ":" -f 2`
      tmp=`grep -n "$indexVol" alltag.txt | cut -d ":" -f 1`
      regionEnd=`sed -n "$[ tmp + 1 ]p" alltag.txt | cut -d ":" -f 1`
      rm -f alltag.txt
      #echo "$regionStart $regionEnd"
    }
    function paraseSrcFileVolumeArray()
    {
      #echo "[[[[paraseSrcFileVolumeArray"
      flag=$1
      tmp=(`grep -n ${flag} ${srcFile} | cut -d "=" -f 1 | tr "\n" " "`) #保留文件中所有的flag
      #echo "1.$tmp "
      #echo "2.${#tmp[@]}"
      for ((j=0; j<${#tmp[@]}; j++))
      do
        #echo ${tmp[$j]}
        line=`echo ${tmp[$j]} | cut -d ":" -f 1`
        if [ $line -le $regionStart ] || [ $line -ge $regionEnd ];then #按照flag在文件中的位置进行排除
          #echo "$regionStart $line $regionEnd"
          continue #go next
        fi
        sed -n "${line}p" ${srcFile} >> recordfile.txt #记录满足条件的flag
    
        #Int array的整数部分
        index_int=0
        for ((i=0; i<6; i++)) #array应该在flag之后5行的范围内,否则认为文件异常,需手动检查
        do
          sed -n "$[ line + i ]p" ${srcFile} | grep -n "\[101\]" > /dev/null
          if [ $? = 0 ];then
            index_int=$[ line + i ]
            break
          fi
        done
        #echo $index_int
        #index_int=`grep -wn "u8Volume_Int\[101\]" ${srcFile} | cut -d ":" -f 1`
        arrystart=`sed -n "$[ index_int + 1 ]p" $srcFile | sed s/[[:space:]]//g` #array起始位置
        arryend=`sed -n "$[ index_int + 13 ]p" $srcFile | sed s/[[:space:]]//g` #array结束位置
        #echo "=$arryend  =$arrystart"
        if [ ! "$arrystart" = "{\\" ] || [ ! "$arryend" = "};" ] || [ $index_int -eq 0 ];then
          echo "[index_int $srcFile error!"
          exit
        else
          for ((i=0; i<14; i++))
          do
           sed -n "$[ index_int + i ]p" ${srcFile} >> recordfile.txt #记录array到文件
          done
        fi
    
        #Fra array的小数部分
        index_fra=0
        for ((i=0; i<6; i++))
        do
          sed -n "$[ index_int + i + 13 ]p" ${srcFile} | grep -n "\[101\]" > /dev/null
          if [ $? = 0 ];then
            index_fra=$[ index_int + i + 13 ]
            break
          fi
        done
        #echo $index_fra
        #index_fra=`grep -wn "u8Volume_Fra\[101\]" ${srcFile} | cut -d ":" -f 1`
        arrystart=`sed -n "$[ index_fra + 1 ]p" $srcFile | sed s/[[:space:]]//g`
        arryend=`sed -n "$[ index_fra + 13 ]p" $srcFile | sed s/[[:space:]]//g`
        #echo "=$arryend  =$arrystart"
        if [ ! "$arrystart" = "{\\" ] || [ ! "$arryend" = "};" ] || [ $index_fra -eq 0 ];then
          echo "[index_fra $srcFile error!"
          exit
        else
          for ((i=0; i<14; i++))
          do
            sed -n "$[ index_fra + i ]p" ${srcFile} >> recordfile.txt
          done
        fi
        break #already find data. exit
      done
    }
    function paraseSrcFile()
    {
      #echo "[[[[paraseSrcFile" #设定需要同步的内容
      rm -f recordfile.txt
      #grep -w "AvcThreshold" $srcFile >> recordfile.txt
      #grep -w "AvcUSBThreshold" $srcFile >> recordfile.txt
      #grep -w "AvcAVThreshold" $srcFile >> recordfile.txt
      #grep -w "AvcHDMIThreshold" $srcFile >> recordfile.txt
      #grep -w "AvcDTVThreshold" $srcFile >> recordfile.txt
      #grep -w "AvcATVThreshold" $srcFile >> recordfile.txt
      #grep -w "AvcVGAThreshold" $srcFile >> recordfile.txt
      #echo "$AvcThreshold $AvcUSBThreshold $AvcAVThreshold"
      paraseSrcFileVolumeArray bEnabled
      #paraseSrcFileVolumeArray bATVEnabled
      #paraseSrcFileVolumeArray bDTVEnabled
      #paraseSrcFileVolumeArray bVGAEnabled
      #paraseSrcFileVolumeArray bHDMIEnabled
      #paraseSrcFileVolumeArray bAVEnabled
      #paraseSrcFileVolumeArray bUSBEnabled
    }
    function writeDstFile()
    {
      #echo "[[[[writeDstFile"
      rm -f errorfile.txt
      dstFile=`find ${1}/Files -name Customer_1.ini`
      index_loc=`grep -n "^\[${indexVol}\]" ${dstFile}| cut -d ":" -f 1` #TAG起始位置
      nextindex_offset=`tail -n +${index_loc} ${dstFile} | grep -n "^\[.*\]" | tr -s '\n' ' ' | cut -d " " -f 2 | cut -d ":" -f 1` #TAG结束位置偏移量
      #nextindex_loc=$[ index_loc + nextindex_offset ]
      #sed -n "${index_loc}p" ${dstFile}
      #sed -n "$[ nextindex_offset + index_loc - 1 ]p" ${dstFile}
    
      while read line
      do
        flag=`echo $line | cut -d "=" -f 1 | sed s/[[:space:]]//g`
        value=`echo $line | cut -d "=" -f 2 | sed s/[[:space:]]//g`
        #echo "$line"
        #echo "$flag $value"
        echo $line | grep -n "Avc.*Threshold" > /dev/null
        if [ $? = 0 ];then
          sed -i "s/${flag}.*/${line}/" ${dstFile}
          continue
        fi
    
        echo $line | grep -n "b.*Enabled" > /dev/null
        if [ $? = 0 ];then
          #bool
          #sed -i "s/${flag}.*/${line}/" ${dstFile}
          dstFlag=(`grep -n ${flag} ${dstFile} | cut -d "=" -f 1 | tr "\n" " "`)
          for ((j=0; j<${#dstFlag[@]}; j++))
          do
            dstFlag_l=`echo ${dstFlag[$j]} | cut -d ":" -f 1`
            if [ $dstFlag_l -gt $index_loc ] && [ $dstFlag_l -lt $[ index_loc + nextindex_offset - 1 ] ];then #判断flag是否在TAG的范围内
              sed -i "${dstFlag_l}c ${line}" ${dstFile}
              break
            else
              continue #go next
            fi
          done
          #echo "~${dstFlag_l} ${index_loc} $[ index_loc + nextindex_offset - 1 ]"
          #Int
          tmp=(`grep -nw "${flag}" recordfile.txt | cut -d ":" -f 1`)
          srcArryStart=$[ tmp + 2 ] #start from "{ \"
          dstArryStart=0
          for ((i=0; i<6; i++)) #查找array起始位置
          do
            sed -n "$[ dstFlag_l + i ]p" ${dstFile} | grep -n "\[101\]" > /dev/null
            if [ $? = 0 ];then
              dstArryStart=$[ dstFlag_l + i + 1 ] #start from "{ \"
              break
            fi
          done
    
          #echo "[[$tmp $srcArryStart $dstArryStart]]                     ..."
          if [ $dstArryStart -eq 0 ];then
            echo ${dstFile} >> errorfile.txt
            echo "[error! $dstFile"
            continue
          fi
    
          #echo ${flag}
          #sed -n "$[ dstArryStart -1 ]p" ${dstFile}
          for ((i=1; i<12; i++))
          do
            data=`sed -n "$[ srcArryStart + i ]p" recordfile.txt`
            data=${data}\\ #deal with the last "\"
            sed -i "$[ dstArryStart + i ]c ${data}" ${dstFile}
            #echo "$i. ${data}"
          done
    
          #Fra
          srcArryStart=$[ srcArryStart + 14 ] #start from "{ \"
          tmp1=$[ dstArryStart + 12 ]
          dstArryStart=0
          for ((i=0; i<6; i++))
          do
            sed -n "$[ tmp1 + i ]p" ${dstFile} | grep -n "\[101\]" > /dev/null
            if [ $? = 0 ];then
              dstArryStart=$[ tmp1 + i + 1 ] #start from "{ \"
              break
            fi
          done
          #echo "[[$srcArryStart $dstArryStart]]                     ..."
          if [ $dstArryStart -eq 0 ];then
            echo ${dstFile} >> errorfile.txt
            echo "[error! $dstFile"
            continue
          fi
    
          #sed -n "$[ dstArryStart -1 ]p" ${dstFile}
          for ((i=1; i<12; i++))
          do
            data=`sed -n "$[ srcArryStart + i ]p" recordfile.txt`
            data=${data}\\ #deal with the last "\"
            sed -i "$[ dstArryStart + i ]c ${data}" ${dstFile}
            #echo "$i. ${data}"
          done
    
          continue
        fi
        #echo "[[${line}  ???"
      done < recordfile.txt
    }
    function writePrescale()
    {
      srcFile=`find ${srcDir} -name MSrv_System_Database_default.inc`
      dstFile=`find ${1}/Files -name MSrv_System_Database_default.inc`
      tmp=(`grep -w "#define.*SPEAKER_PRES.*" ${srcFile} | cut -d " " -f 2`)
      for ((i=0; i<${#tmp[@]}; i++))
      do
        data=`grep -w "#define.*${tmp[i]}" ${srcFile}`
        #echo "${data}"
        sed -i "s:#define.*${tmp[i]} .*:${data}:g" ${dstFile}
      done
    }
    function writeAll()
    {
      #echo "[[[[writeAll"
      while read order
      do
        echo "${exceptionOrder}" | grep -w "${order}" > /dev/null #排除预设的文件目录
        if [ $? = 0 ];then
          echo "except]] $order"
        else
          echo "[[$order"
          writeDstFile $order
          #writePrescale $order
        fi
      done < targetDir.txt
    }
    
    init
    paraseSrcFile
    writeAll
    exit
    


    展开全文
  • bat 批量修改文件内容

    千次阅读 2020-10-14 19:30:27
    :::::批量修改文件内容.bat::::: @echo off :: 开启变量延迟扩展 setlocal EnableDelayedExpansion :: 输入开始 :inputFilePath set /p filePath=请输入文件路径(建议拖拽): if not defined filePath ( echo ...
    :::::批量修改文件内容.bat:::::
    @echo off
    :: 开启变量延迟扩展
    setlocal EnableDelayedExpansion
    :: 输入开始
    :inputFilePath
    set /p filePath=请输入文件路径(建议拖拽):
    if not defined filePath (
    	echo 文件路径为空
    	goto inputFilePath
    )
    if not exist %filePath% (
    	echo 文件路径不存在
    	goto inputFilePath
    )
    rem echo %filePath%
    :inputOldContent
    set /p oldContent=请输入要修改的内容(例如:Hello):
    if not defined oldContent (
    	echo 要修改的内容为空
    	goto inputOldContent
    )
    rem echo %oldContent%
    :inputNewContent
    set /p newContent=请输入替换的内容(例如:Hi):
    if not defined newContent (
    	echo 替换的内容为空
    	goto inputNewContent
    )
    rem echo %newContent%
    :: 输入结束
    :: 逐行遍历文件内容
    for /f "delims=" %%l in (%filePath%) do (
    	rem echo %%l
    	set line=%%l
    	:: 替换字符串
    	set "line=!line:%oldContent%=%newContent%!"
    	echo !line!
    	:: 将内容重定向输出到临时文件中
    	echo !line!>>temp.txt
    )
    :: 移动临时文件到原文件路径中,并重命名为原文件名,覆盖掉原文件
    move temp.txt %filePath%
    pause

    效果展示:

    展开全文
  • 一个Java语言编写的,批量替换纯文本文件内容。使用说明:1. 需要修改的文件,修改内容都有共同点。2. 可以捕捉到被替换的内容,在被替换的内容上可以新增加自己的内容进行替换。3. 工具并没有提供相关的操作界面,...

    一个Java语言编写的,批量替换纯文本文件内容。

    使用说明:

    1.  需要修改的文件,修改内容都有共同点。

    2.  可以捕捉到被替换的内容,在被替换的内容上可以新增加自己的内容进行替换。

    3.  工具并没有提供相关的操作界面,只能通过main方法执行。

    4.  程序可以在原有的基础上进行扩展。

    5.  开发环境为: JDK1.7

    其中一段相关代码:

    package com.what21.tool.regex;

    import java.util.regex.Matcher;

    import java.util.regex.Pattern;

    public class MyRegex {

    private String context;

    private String regex;

    private Pattern pattern;

    /**

    * @param regex

    */

    public MyRegex(String regex) {

    this.regex = regex;

    this.pattern = Pattern.compile(regex);

    }

    /**

    * @return

    */

    public String toMatchText() {

    Matcher matcher = getPattern().matcher(getContext());

    if (matcher.find()) {

    return matcher.group();

    }

    return null;

    }

    /**

    * @return

    */

    public boolean toMatches() {

    Matcher matcher = getPattern().matcher(getContext());

    return matcher.matches();

    }

    /**

    * @param text

    * @return

    */

    public String toReplaceText(String text) {

    return getContext().replaceFirst(getRegex(), text);

    }

    /**

    * @param text

    * @return

    */

    public String toAllReplaceText(String text) {

    return getContext().replaceAll(getRegex(), text);

    }

    /**

    * @return

    */

    public String getContext() {

    return context;

    }

    /**

    * @param context

    */

    public void setContext(String context) {

    this.context = context;

    }

    /**

    * @return

    */

    public String getRegex() {

    return regex;

    }

    /**

    * @return

    */

    public Pattern getPattern() {

    return pattern;

    }

    }

    密码:0jg5

    展开全文
  • 批量修改文件内容工具(ultrareplace超级批量文本替换器).rar
  • py 批量修改文件内容

    2020-03-12 12:27:05
    批量修改文件内容 把原文件的hello替换成world。 #!/usr/local/bin/python #coding:gbk import re old_file='/tmp/test' fopen=open(old_file,'r') w_str="" for line in fopen: if re.search('hello',line): .....

    批量修改文件内容 把原文件的hello替换成world。

    #!/usr/local/bin/python
    #coding:gbk
    import re
    
    old_file='/tmp/test'
    fopen=open(old_file,'r')
    
    w_str=""
    for line in fopen:
            if re.search('hello',line):
                    line=re.sub('hello','world',line)
                    w_str+=line
            else:
                    w_str+=line
    print w_str
    wopen=open(old_file,'w')
    wopen.write(w_str)
    fopen.close()
    wopen.close()
    
    展开全文
  • Excel批量修改文件内容

    千次阅读 2017-07-06 12:09:27
    一、Excel批量修改文件内容 最近在做的大数据项目中本人负责ETL模块,要处理的文件比较多且数据量比较大,在将数据文件导入到Hadoop平台之前有时候会根据需要将数据进行一些修改,Excel用的不是很好,所以记录一下...
  • 基于命令的批量修改文件内容
  • Python编程之批量修改文件内容 本文主要介绍利用python批量处理文件夹中的文件,并对其内容进行修改最后生成至另一文件夹中的实现过程。
  • linux 批量修改文件内容

    千次阅读 2016-04-22 17:23:18
    如果有批量修改文件内容的需求,可参考下面这些方法 1.批量查找某个目下文件的包含的内容,例如: # grep -rn或l "要找查找的文本" 路径或文件 rn表示匹配查找字符串的内容显示出来 和行号 rl 表示匹配查找字符...
  • ubuntu下批量修改文件内容

    千次阅读 2016-08-26 15:40:02
    ubuntu下批量修改文件内容最近在处理一些标注文件时,发现由于标注工具的编写的不规范,标注文件中的一些标签是错误的,重新标注又太麻烦,因此采用文本内容批量替换的方式去解决。 文件夹下目录: 文件内容: ...
  • 批量修改文件内容 bat

    2018-01-11 17:04:26
    可以批量替换文件内容的小bat。可是不能零积分分享。bat内容,见下面的描述: @echo off for /f "delims=" %%i in ('dir /s/b t\\*.txt') do ( for /f "delims=" %%a in ('type "%%~fi"') do ( set "foo=%%a" ...
  • 由于项目中有些IP不需要使用,已经更换了新的IP,当次项目中有许多IP的时候,使用文本编辑器修改会很麻烦耗时,所以使用python进行批量修改
  • 今天发现个问题,项目文件上传服务器时没有改测试代码,重新上传文件费时费力,于是去找了好多网上的帖子,大部分要不是不能用,要不是就是安装插件...上面的代码的使用需要到对应得目录下面才能够使用,如需批量修改.
  • bat批量修改文件内容

    2021-01-30 10:39:32
    1.双击运行moreFileUpdate.bat批量修改目录下的所有文件。 编写注意点: 中文放入变量中需注意转为ANSI编码 代码块: @echo off&setlocal enabledelayedexpansion & color 0A set str=目录 echo %str% set ...
  • UltraEdit批量修改文件内容     转自:http://dinofish.blog.163.com/blog/static/46630160200773162050722/ 现在假设我们要把index下面的所有网页文件中的“http://xxx.18dmm.com/newdm/new05.htm”字段改...
  • Python3 写的远程批量修改文件内容的脚本 一、说明: 1、利用Python的paramiko模块,调用远程的shell命令去修改相应文件。 2、有一个专用配置文件,列出服务器清单。 3、Python循环读取配置文件的服务器IP去连接...
  • 一、说明:1、利用Python的paramiko模块,调用远程的shell命令去修改相应文件。2、有一个专用配置文件,列出服务器清单。3、Python循环读取配置文件的服务器IP去连接它,并执行相应的命令。4、主要是有一个正则,...
  • _>NODE_1713_length_83_cov_1.000000_ CCTCTACCTCTACCTCTACCTCTACCTCTACCTCTACCTCTACCTCTACCTCTACCTCTACCTCTACCTCTACCTCTACCTCT...想批量删除编号后面的length和cov 即NODE_1713_length_83_cov_1.000000变成NODE_1713

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,590
精华内容 1,036
关键字:

批量修改文件内容