学习整理(常见的 shell 通配符 正则)符号作用
注释
输出重定向
\ 转义字符
. 人一单字符
/ 根目录(在中间使用表示路径)
~ 用户根目录(用户登录时所在的目录)
. 当前目录
.. 上级目录
输出追加重定向
< 输入重定向
<< 追加输入重定向
~ 当前用户家目录
`` %09%E5%BC%95%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A2%AB%E6%89%A7%E8%A1%8C%E5%90%8E%E7%9A%84%E7%BB%93%E6%9E%9C%0A.%20%20%09%E4%BB%BB%E6%84%8F%E9%95%BF%E5%BA%A6%E5%AD%97%E7%AC%A6%0A#card=math&code=%28%29%09%E5%BC%95%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A2%AB%E6%89%A7%E8%A1%8C%E5%90%8E%E7%9A%84%E7%BB%93%E6%9E%9C%0A.%2A%20%20%09%E4%BB%BB%E6%84%8F%E9%95%BF%E5%BA%A6%E5%AD%97%E7%AC%A6%0A) 以**结尾(正则)变量替换的代表符号。
^ 以*开头(正则)
^$ 表示空行
匹配任何字符,、文本、空;(0个或多个)
^. 以任意多个字符串开头,.有多少算多少,贪婪模式
? 任何一个字符,(a?b:之间只能有一个字符)
& 让程序或脚本切换到后台执行
&& 并且 同时成立
[abc] 表示这个范围内的任何一个字符(正则,通配符)
{1..100}产生一个序列,以点分割且,不能有空格(通配符)
[^abc] [!abc]匹配指定范围外的任意一个字符
() 分组将一个或多个字符绑在一起当做一个整体
(str1,str2,…) 匹配str1或str2(或等)其中的一个字符串
‘’ 单引号转移,比较傻瓜其内部所有shell命令、通配符。全部不会被使用
“” 双引号转移,允许出现特定的命令
` 反单引号转移,引号内都被视为命令执行<br />
正则元字符:<br />
[:alnum:] 字母和数字<br />
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z<br />
[:lower:] 小写字母<br />
[:upper:] 大写字母<br />
[:blank:] 水平空白字符(空格和制表符)<br />
[:space:] 所有水平和垂直的空白字符(比[:blank:]包含的范围广)<br />
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)<br />
[:digit:] 十进制数字<br />
[:graph:] 可打印的非空白字符<br />
[:print:] 可打印字符<br />
[:punct:] 标点符号<br />
[:xdigit:] 十六进制数字<br />
文本处理三剑客之 grep<br />
grep:<br />
作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行<br />
匹配检查;打印匹配到的行<br />
模式:由正则表达式字符及文本字符所编写的过滤条件<br />
grep [OPTIONS] PATTERN [FILE...]<br />
grep root /etc/passwd<br />
grep "![](https://g.yuque.com/gr/latex?USER%22%20%2Fetc%2Fpasswd%0Agrep%20'#card=math&code=USER%22%20%2Fetc%2Fpasswd%0Agrep%20%27)USER' /etc/passwd<br />
grep
whoami` /etc/passwd
grep命令选项
—color=auto: 对匹配到的文本着色显示
-m # 匹配#次后停止
-v 显示不被pattern匹配到的行
-i 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
-e 实现多个选项间的逻辑or关系
grep –e ‘cat ’ -e ‘dog’ file
-w 匹配整个单词
-E 使用ERE
-F 相当于fgrep,不支持正则表达式
-f file 根据模式文件处理
文本处理三剑客之 sed
一、sed介绍
sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,
称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,
把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。如果没有使诸如‘D’ 的特殊命令,
那会在两个循环之间清空模式空间,但不会清空保留空间。这样不断重复,直到文件末尾。
文件内容并没有改变,除非你使用重定向存储输出。
功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等
二、sed用法
sed [option]… ‘script’ inputfile
1、常用命令选项
-n 不输出模式空间内容到屏幕,即不自动打印
-e 多点编辑
-f /PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本
-r 支持使用扩展正则表达式
-i.bak 备份文件并原处编辑
2、地址命令
script 地址命令
对指定行号处理,默不指定,则处理所有行
单地址:
: 指定的行,$:最后一行
/pattern/:被此处模式所能够匹配到的每一行
地址范围:
,#
,+#
/pat1/,/pat2/
`#,/pat1/
~:步进
1~2 奇数行
2~2 偶数行
三、编辑命令
d 删除模式空间匹配的行,并立即启用下一轮循环
p 打印当前模式空间内容,追加到默认输出之后
a []text1 在指定行后面追加文本,支持使用\n实现多行追加
i []text 在行前面插入文本
c []text 替换行为单行或多行文本
w /path/somefile 保存模式匹配的行至指定文件
r /path/somefile 读取指定文件的文本至模式空间中匹配到的行后
= 为模式空间中的行打印行号
! 模式空间中匹配行取反处理
s///:查找替换,支持使用其它分隔符,s@@@,s###
替换标记:
g 行内全局替换
p 显示替换成功的行
w /PATH/TO/SOMEFILE 将替换成功的行保存至文件中