shell从目录下指定的文件类型里匹配关键字

简介:

#!/bin/sh

##################################
# cp source file to new dir 
#
##################################

ROOT_DIR='/home1/www/webpub'
REPLACE_ROOT_DIR='\/home1\/www\/webpub'
FIND_EXT_NAME='*.inc'
FIND_EXT_NAME2='*.INC'
FIND_TEMP_FILE='/tmp/t_inc'
KEY_WORD='market.52pk.com'

#find $ROOT_DIR -name "$FIND_EXT_NAME" -exec grep "$KEY_WORD" {} \;> $FIND_TEMP_FILE
#find $ROOT_DIR -name "$FIND_EXT_NAME2" -exec grep "$KEY_WORD" {} \; >> $FIND_TEMP_FILE
grep -Frl --include="$FIND_EXT_NAME" --include="$FIND_EXT_NAME2" 'market.52pk.com' $ROOT_DIR > $FIND_TEMP_FILE


while read line
do
DIR_NAME=$(dirname $line)
echo $DIR_NAME
NEW_DIR_NAME=$(echo $DIR_NAME | sed -e "s#$REPLACE_ROOT_DIR##g")
echo $NEW_DIR_NAME
if [ ! -d $NEW_DIR_NAME ]
then
mkdir -p $NEW_DIR_NAME
fi

cp -a $line $NEW_DIR_NAME

done < $FIND_TEMP_FILE


rm -rf $FIND_TEMP_FILE


本文转自 liang3391 51CTO博客,原文链接:http://blog.51cto.com/liang3391/456619


相关文章
|
Shell Linux API
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
269 1
|
Shell Linux C语言
【Shell 命令集合 磁盘管理 】Linux 以树状图列出目录的内容 tree命令使用指南
【Shell 命令集合 磁盘管理 】Linux 以树状图列出目录的内容 tree命令使用指南
671 0
|
存储 安全 Shell
上传漏洞利用时,没有回显上传目录怎么连接shell
上传漏洞利用时,没有回显上传目录怎么连接shell
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
|
Shell Linux Perl
在Linux中,编写一个shell脚本,用于统计指定目录下所有文件的行数。
在Linux中,编写一个shell脚本,用于统计指定目录下所有文件的行数。
|
Shell Linux
linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
169 0
|
存储 Shell 编译器
【Shell 编程设计】设计一个批量修改目录中的文件名的shell脚本
【Shell 编程设计】设计一个批量修改目录中的文件名的shell脚本
214 0
|
4月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
492 9
|
4月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
444 2
|
7月前
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
305 60