主理人序
grep命令介绍及使用
grep命令 常用参数
递归查找文本内包含 39oJwJE 的文本或其他可编写问如js/css 本示例是指查找内容 包含 39oJwJE 的php 文件
grep 39oJwJE -rl --include="*.php" ./*
grep "你吃饭了吗" -rl --include="*.php" ./*
从文件内容查找匹配指定字符串的行
grep "被查找的字符串" 文件名
在当前目录里第一级文件夹中寻找包含指定字符串的 .in 文件
grep "thermcontact" /.in
从文件内容查找与正则表达式匹配的行
grep –e "正则表达式" 文件名
查找时不区分大小写
grep –i "被查找的字符串" 文件名
从文件内容查找不匹配指定字符串的行
grep –v "被查找的字符串" 文件名
从根目录开始查找所有扩展名为 .log 的文本文件,并找出包含 "ERROR" 的行
find / -type f -name "*.log" | xargs grep "ERROR"
从当前目录开始查找所有扩展名为 .in 的文本文件,并找出包含 "thermcontact" 的行
find . -name "*.in" | xargs grep "thermcontact"
via Linux grep 命令;
sed命令介绍及使用
sed命令格式
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
实例
替换文本中的字符串 book 替换成 books
sed 's/book/books/' file
直接编辑文件选项-i,会匹配file文件中每一行的第一个book替换为books
sed -i 's/book/books/g' file
使用后缀 /g 标记会替换每一行中的所有匹配
sed 's/book/books/g' file
sed 分组替换
Advertising.list 内容如下
# (K), reject
# > Kingsoft, reject
现需将 , reject
删除,只保留前面部分;则按如下第一个命令执行即可;其中正则表达式 (#.*?)(, reject)
表示需匹配的内容,由两个分组组合而成,其中 \1
表示分组1;关于分组匹配可查看 分组;每一个括号代表1个分组,由左开始匹配;
sed -i -Ee 's/(#.*?)(, reject)/\1/' Advertising.list
sed -i -Ee 's/(#.*?)(, reject)/\1/' $(grep DOMAIN.* -rl --include="\.list" ./*)
使用 grep&sed命令批量替换字符串
sed -i 's/2531083377/172238360/g' `grep 2531083377 -rl --include="*\.html" ./*`
sed -i 's/2531083377/172238360/g' $(grep 2531083377 -rl --include="*\.html" ./*)
反引号的意味
和$()
是一样。在执行一条命令时,会先将反引号中的与如,`grep 2531083377 -rl --include="*\.html" ./*`
,或者是$()
中的语句当作命令执行一遍,再将其执行结果加入到原命令中重新执行。
echo `ls`
$()的意味
根据POSIX规范,要求系统工程师采用的是$(命令)的形式。所以,我们最好还是遵循这个规范,少用``,多用$()
echo $(ls)
如上。
版权属于:毒奶
联系我们:https://limbopro.com/6.html
毒奶搜索:https://limbopro.com/search.html
毒奶导航:https://limbopro.com/daohang/index.html本文链接:https://limbopro.com/archives/19166.html
本文采用 CC BY-NC-SA 4.0 许可协议,转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!