1.基础
^
锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
.匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
*匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。
[]匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^]匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
\(..\)标记匹配字符,如'\(love\)',love被标记为1。
\<锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\>锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\}重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。
x\{m,\}重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
x\{m,n\}重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
\w匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
\W\w的反置形式,匹配一个或多个非单词字符,如点号句号等。
\b单词锁定符,如: '\bgrep\b'只匹配grep。
---------------------------------------------
2. 零宽断言
(?=exp)
也叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp
比如
\b\w+(?=ing\b)
,匹配以ing结尾的单词的前面部分(除了ing以外的部分),如查找I'm singing while you're dancing.时,它会匹配sing和danc。
-------------------------
(?<=exp)
也叫零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式exp。比如
(?<=\bre)\w+\b
会匹配以re开头的单词的后半部分(除了re以外的部分),例如在查找reading a book时,它匹配ading。
--------------------------
(?!exp)
\d{3}(?!\d)
(?<!exp)
cat "$1" | grep -Po "(?<=^${name}=).*$"零宽断言里面长度要一定
cat "$1" | grep -Po "(?<=^${name}.*=).*$" //出错
echo "$temp" | grep -q ":" if [ $? -ne 0 ]; then echo "$temp : can not detect port, add default '80' " temp="${temp}:80" fi
interface=("url.interface.keyword" "url.interface.meta.incremental" "url.interface.meta.total" "url.interface.meta.urgent" "url.interface.vt.time" "url.interface.colander.admin.hostingsite" "url.colanderKeywordSync") for name in "${interface[@]}";do
相关推荐
首先,创建一个Shell脚本,我们通常会使用`vim`这样的文本编辑器,比如创建一个名为`shell_name.sh`的脚本。在文件中,我们需要在第一行添加`#!/bin/bash`,这是一个称为“shebang”的行,用于告诉系统该脚本应由...
- `grep "$a" file`:如果`a`是一个变量,那么它的内容将被插入到`grep`命令中,`grep`将搜索这个内容。 Grep还支持多种选项: - `-b`:显示匹配行的字节偏移量。 - `-c`:仅显示匹配行的数量。 - `-v`:显示不...
要在一个文件夹中的多个文件中进行匹配,只需列出所有文件名即可,如`grep PATTERN file1.txt file2.txt`。 3. **从标准输入中读取** 通过管道`|`,我们可以将其他命令的输出传递给`grep`,例如`echo "text" | ...
标题“shell教程(一个很不错的bash脚本编写教程)”明确指出这是一篇关于Shell编程的教学文章,特别是针对Bash(Bourne Again Shell)脚本的编写。Bash是Unix、Linux等操作系统中最常用的一种Shell类型。 #### ...
在30天的学习计划中,每天可能涵盖一个或多个主题,逐步深入,从基础到进阶,最终让你能够编写出功能强大且高效的Shell脚本。通过这份资料,你不仅可以学习到Shell编程,还能更好地理解和利用Linux/Unix系统。
- **Bourne Shell (sh)**:Unix历史上第一个广泛使用的Shell。 - **Bash (Bourne Again SHell)**:基于Bourne Shell发展而来,功能更加强大,是目前最流行的Shell之一。 - **Korn Shell (ksh)**:结合了Bourne Shell...
**8.3 小结**:本章详细介绍了grep命令的使用方法及其与正则表达式的结合应用,帮助用户高效地进行文本搜索和过滤。 以上是对《Linux Shell 命令与脚本编程》知识点的详细梳理,覆盖了文件安全与权限管理、文件搜索...
- **正则表达式**:掌握正则表达式的使用方法,以便更灵活地进行文本匹配和替换操作。 - **函数定义**:了解如何定义和调用自定义函数,提高代码复用性和可读性。 - **重定向与管道**:熟悉标准输入输出流的重定向和...
2. **Shell脚本调试与排错**:学习如何找出并修复脚本中的错误,包括使用调试工具和日志记录等方法。 3. **Shell脚本的公共函数库**:了解如何利用现有的公共函数库来加速开发,以及如何创建自己的函数库。 通过这...
通过这七天的学习,你可以对Shell有一个全面而深入的理解,从基础概念到实际应用,再到高级技巧,都能在实践中逐步掌握。在学习过程中,不断地练习和实践是提升技能的关键,希望这些笔记能成为你探索Shell世界的一盏...
熟悉元字符、重定向符、管道操作符“|”的使用方法。 ##### 2. 实验任务与要求 在字符界面下完成以下操作: - **查找当前目录下以小写字母‘a’打头,后接一个数字,且扩展名为.txt的所有文件** - **使用 find ...
为了有效地管理和利用这些日志,我们可以编写一个shell脚本来自动化地处理日志的生成与归档。下面将详细介绍如何编写这样一个脚本,以及涉及的相关知识点。 一、shell脚本基础 Shell脚本是Linux环境下的批处理程序...
`wc` 命令是Linux系统中一个非常实用的工具,主要用于统计文本文件的行数、单词数和字符数。它的名字源自英文 "Word Count" 的缩写,功能强大且简单易用,适合在各种文本处理场景中进行快速统计。 ### wc 命令的...
高级bash编程 高级Bash脚本编程指南(一) 目录 ++++ 第一部分.... 1. 为什么使用shell编程 ... 在一个脚本中使用 cmp 来比较2个文件. 12-33. basename 和 dirname 12-34. 检查文件完整性 12-35. Uudecod 编码后的...
Linux Shell是Linux操作系统中的一种命令解释器,它允许用户通过命令行界面与系统进行交互,执行各种任务。在学习Shell的过程中,了解其基本概念、常用命令及其应用是至关重要的。 首先,Shell脚本是由一系列系统...
在一个脚本中使用 cmp 来比较2 个文件. 12-33. basename 和 dirname 12-34. 检查文件完整性 12-35. Uudecod 编码后的文件 12-36. 查找滥用的连接来报告垃圾邮件发送者 12-37. 分析一个垃圾邮件域 12-38. 获得一份...