批量查找文档中的关键字符 Linux下批量修改替换文档内容

来源:互联网 发布:数据分析发展方向 编辑:程序博客网 时间:2024/05/20 16:33
 

我们在处理文档时,有时需要查询文档中的关键字符,加以替换和修改。少量的文件一个个的查找替换,手工即可完成,对于比较多的文件夹下面的文档,人工处理是比较难的一件事。但是在Linux下面,用命令行处理,片刻即可完成,只需要一个小小的脚本。

这种方法在进行批量替换关键字时非常有用。

我们要查找此目录下的所有文档,哪个文档中包括有“acyoo.com”这个字符

#!/bin/bash

df=`find /var/www/web/ -type f`

#这个命令是列出目录下所有的文档

for file in ${df} ; do

#用for命令

        if grep -q "acyoo.com" $file;then

#如果文档中包括acyoo.com这个字符时

        echo $file>>web.txt

#则输出文件名到web.txt
        fi
done
 


如果多个目录或多个文档,需要修改相同的内容,但不在同一个目录里,可以用这个这个脚本完成

#!/bin/bash
#需要修改文档所在的目录路径
dir="/var/www"
####  main program ..............####
#提取目录名称
files=`ls $dir -l | awk '{ print $9 ; }'`
#用for进行循环执行
for file in ${files} ; do
        if [ -d $dir/$file/aaaaa/bbbbb ];then
    echo $dir/$file
    #把database.php里的4938373404058改为localhost
        sed -i "s/4938373404058/localhost/g" `grep 4938373404058 -rl $dir/$file/aaaaa/bbbbb/database.php`
    sed -i "s/mysq123456/root/g" `grep mysq123456 -rl $dir/$file/aaaaa/bbbbb/database.php`
        fi
done

http://cookiebear.info/archives/763

http://www.acyoo.com/archives/category/linux