Linux正则表达式与通配符
1、通配符和正则表达式支持的命令不相同。通配符用于Linux的shell命令(如文件名相关操作)中,而正则表达式用于文本内容中的字符串搜索和替换等。
2、Linux通配符和三剑客的正则表达式是不一样的,因此,代表的意义也有较大的区别 。 通配符一般用户命令行bash环境,而linux正则表达式用于grep, sed, awk场景。
3、转义字符:“/”和DOS的命名规则不同的是,通配符“*”、“?”是可以在文件名中使用的。如果要操作的文件名中包含有这些特殊符号,我们可以结合“/”来表达。
4、文件或目录的权限:在 Linux 的文件系统中,星号 * 可以用作文件或目录权限的占位符。当一个星号 * 出现在文件或目录的权限中时,表示对该文件或目录具有所有访问权限。
5、有区别,*.*是所谓的wildcard,通配符,也可以算正则表达式,用于匹配名字中带.的文件 一般特殊符号“*”是通配符,它表示匹配0个或多个字符。有时候特殊符号*“还表示可执行文件,比如执行 ls -F 命令时。
6、linux shell通配符(wildcard) 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的“参数”里(它不用在 命令名称里, 也不用在 操作符上)。
Shell编程之正则表达式(sed)
1、sed -r s/+//g file.txt正则中,+表示重复前面一个字符1次或以上(至少一次)。当然,也可以写为:sed -r s/{2,}//g file.txt{2,}表示2次或以上。这样,出现1次的就可以不用处理。
2、一般默认 sed 只替换第一个匹配的 pattern ,我们可以通过添加全局标识 g 将其应用到数据的所有行中。 如果我们想要忽略匹配的大小写,使用 i 标识 默认sed 命令支持基本的POSIX正则表达式(BRE),可以通过 -E 选项进行拓展(ERE)。
3、sed替换命令的结构为: s/A/B/ 你在最后少了个斜杠/,结构不完整,会报错。
4、sed很早就支持正则表达式了,这在文件处理中非常有用,以下列出一些常见用法( GNU SED版本 )。行首用^表示,行尾用$表示。
5、dhcpd.conf sed中正则匹配时可以在不需要变化的文本两边插入带反斜杠的圆括号来定义区域,然后通过区域号\x(x从1开始)来引用这些由圆括号界定的区域。这样就可以实现只改变部分区域而另一部分保持不变。
6、用户自定义变量:用户自定义,比如脚本中的变量 定义变量格式: 变量名=值 (=两边不能有空格)字符串用单引号或者双引号引起来 shell支持正则表达式的常见命令:grep、sed、awk。
sed命令详解
保持和互换:h命令和x命令 互换模式空间和保持缓冲区的内容。也就是把包含test与check的行互换:脚本scriptfile sed脚本是一个sed的命令清单,启动Sed时以-f选项引导脚本文件名。
使用命令:cat filename1 | tr -d “^V^M” newfile;使用命令:sed -e “s/^V^M//” filename outputfilename需要注意的是在2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M。
sed -e s/^/kill -9 /g:sed文本处理命令,-e说明 使用正则表达式 ,s/X/Y/g替换的格式,用Y替换X,把一行的开头(^)用kill -9 替换(注意9后面有个空格,必须)。
-e∶直接在指令列模式上进行 sed 的动作编辑 s在sed里是替换(固定模式例子:s/A/B/ 将A替换成B)看清楚s/ 后边 是有个空格的也就是0个或多个空格后边匹配inet addr:\( \) 这是sed的一个固定模式写法。
就替换,2g表示替换行中第二次出现。(1)删除以非#号开头的行,即显示以#号开头的行。
linux三剑客的基本使用——grep、sed、awk
Linux三剑客是(grep,sed,awk)三者的简称,熟练使用这三个工具可以提升运维效率。Linux三剑客以正则表达式作为基础,而在Linux系统中,支持两种正则表达式,分别为“标准正则表达式”和“扩展正则表达式”。
在linux中grep命令是非常有用的,它和管道(|)配合使用,非常强大,用于搜索文本文件.如果想要在几个文本文件中查找一字符串,可以使用‘grep’命令。‘grep’在文本中搜索指定的字符串。
grep命令作为Linux文本处理三剑客的一员,另外两个是sed和awk。