Linux 下批量替换文件内容脚本
#!/bin/bash
OLD="ABCDEF"
NEW="123456"
DPATH="/home/you/foo/*.txt"
BPATH="/home/you/bakup/foo"
TFILE="/tmp/out.tmp.$$"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
else
echo "Error: Cannot read $f"
fi
done
/bin/rm $TFILE
以上代码,将文件 ABCDEF 字符,替换成 123456
linux下查找某目录下所有文件包含某字符串的命令
#从文件内容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名
#从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名
#查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名
#查找匹配的行数:
$ grep -c "被查找的字符串" 文件名
#从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名
#从根目录开始查找所有扩展名为.txt的文本文件,并找出包含"linux"的行
find . -type f -name "*.txt" | xargs grep "linux"
No Comments