linux 正则表达式 =,Linux修改时间
各位老铁们,大家好,今天由我来为大家分享linux 正则表达式 =,以及Linux修改时间的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
请教会linux shell脚本的=~是什么意思
是正则表达式的字符判断
if [[$i=~ ^[0-9]+$ ]]&& echo 1
1、^是匹配字符串开始的意思,[0-9]只要不是数字都不要。
2、~+的意思的^[0-9]的范围里匹配一次以上+$是匹配结束符。
touch-t"201109021200.00" tempfile
使用引号内的时间戳在当前目录建立一个叫tempfile的文件
find-name"*VIRTUALID*"-newer tempfile-exec cp{}/home/wbft/luo \;
扩展资料
Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell本身是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。
它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。
请教会linuxshell脚本的=~是什么意思
在Linux Shell脚本中,`=~`是一个运算符,用于正则表达式匹配。
下面是对这一运算符的
1.正则表达式匹配运算符
在shell脚本中,`=~`用于字符串的模式匹配。该运算符的左侧通常是一个变量或表达式,右侧则是正则表达式模式。当左侧的值与右侧的正则表达式模式匹配时,`=~`会返回真。
2.使用场景
这个运算符在文本处理和匹配时非常有用。例如,你可能想检查一个字符串是否包含特定的模式或字符集。通过使用 `=~`和相应的正则表达式,你可以轻松地执行这样的任务。
3.示例
下面是一个简单的示例,演示了如何使用 `=~`运算符:
bash
#!/bin/bash
string="Hello World"
if [[$string=~ ^Hello.*World$ ]]; then
echo"字符串匹配成功!"
else
echo"字符串匹配失败。"
fi
在这个例子中,我们检查变量 `$string`是否完全匹配正则表达式 `^Hello.*World$`。由于该字符串确实匹配该模式,所以输出为“字符串匹配成功!”
总之,在Linux Shell脚本中,`=~`是一个强大的工具,用于执行基于正则表达式的字符串匹配。它允许你在处理文本和进行模式匹配时执行复杂的操作。
Linux正则表达式
一.linux文本查找命令
在说linux正规表达式之前,还介绍下linux中查找文本文件常用的三个命令:
1.grep:最早的文本匹配程序,使用POSIX定义的基本正则表达式(BRE)来匹配文本。
2.egrep:扩展式grep,其使用扩展式正规表达式(ERE)来匹配文本。
3.fgrep:快速grep,这个版本匹配固定字符串而非正则表达式。并且是唯一可以并行匹配多个字符串的版本。
如下简单的介绍grep命令:
语法格式:
grep [options...] pattern-spec [files...]
用途:
匹配一个或多个模式的文本行。
options:
-E:使用扩展正则表达式进行匹配, grep-E或取代 egrep命令。
-F:使用固定字符串进行匹配, grep-F或取代传统的fgrep命令。
-e:通常第一个非选项的参数认为是要匹配的模式,也可以同时提供多个模式,只要将其放入单引号,并用换行字符分隔他们。
模式以减号开头时,为防止混淆其为选项,-e选项说明其后的参数为模式,即使他以减号开头。
-f:从pat-file文件读取模式作为匹配。
-i:模式匹配时忽略大小写差异。
-l:列出匹配模式的文件名称,而不是打印匹配的行。
-q:静默的,如果匹配成功,不将匹配的行输出到标准输出;否则即是不成功。
-s:不显示错误信息,通常与-q并用。
-v:显示不匹配模式的行。
说明:可以同时查找多个文件中的内容,当指定多个文件时,每个显示出的文件行前会有文件名加一个冒号标识其来自哪个文件。
可以使用多个-e或-f选项,建立要查找的模式列表。
二.正则表达式简要介绍
1.正则表达式的组成
(1).一般字符:没有特殊意义的字符
(2).特殊字符(meta字符):元字符,有在正则表达式中有特殊意义
2.如下讲下正则表达式中的常见meta字符
(1).POSIX BRE与ERE中都有的meta字符:
\ : 通常用于打开或关闭后续字符的特殊含义,如\(...\)与\{...\}
. : 匹配任何单个字符(除NUL)
* : 匹配其前的任何数目或没有的单个字符,例: . 表示任一字符,则.*匹配任一字符的任意长度
^ : 匹配紧接着的正则表达式,BRE中仅在正则表达式的开头有特殊的含义,ERE中在任何位置都有特殊含义
$ : 匹配前面的正则表达式,在字符串或者行结尾处。BRE中仅在正则表达式的结尾处有特殊的含义,ERE中在任何位置都有特殊含义
[] : 匹配方括号内的任一字符,其中可用连字符(-)指的连续字符的范围;^符号苦出现在方括号的第一个位置,则表示匹配不在列表中的任一字符,
(2).POSIX BRE中才有的字符:
\{n,m\}:区间表达式,匹配在它前面的单个字符重现的次数区别。\{n\}指重现n次;\{n,m\}指重现n至m次;
\(\):保留空间,可以将最多9个独立的子模式存储在单个模式中。如\(ab\).*\1:指匹配ab组合的两次重现,中间可存在任意数目的字符。
\n:重复在\(与\)方括号内第n个子模式至此点的模式。
(3).POSIX ERE中才有的字符:
{n,m}:与BRE的\{n,m\}功能相同
+:匹配前面正则表达式的一个或多个扩展
?:匹配前面正则表达式的零个或一个扩展
|:匹配|符号前或后的正则表达式
():匹配方括号括起来的正则表达式群
(4). 方括号([])表达式
4.1.字符集 [: :]
标识字符集,有如下几种:
[::alnum]:数字字符[:digit:]:数字字符[:punct:]:标点符号字符
[:alpha:]:字母字符[:graph:]:非空格字符[:space:]: 空格字符
[:blank:]:空格与定位字符[:lower:]:小写字母字符[:upper:]:大写字母字符
[:cntrl:]:控制字符[:print:]:可显示的字符[:xdigit:]: 16进制数字
4.2.排序符号
指将多个字符视为一个符号,如[.ch.]即将ch视为一个符号
4.3.等价字符
认为多个字符相等,如[=e=]在法文的locale里,可匹配于多种与e相似的字符,此处不再列出。
说明:这三种构造除其自身的方括号之外,还必须使用额外的方括号括起来。
例: [[:alpha:]!]:匹配任一英文字母或感叹号。
[[.ch.]:匹配ch排序元素,而不匹配单独的字母c或h.
3.简单正规表达式匹配案例
china : 匹配此行中任意位置有china字符的行
^china :匹配此以china开关的行
china$:匹配以china结尾的行
^china$:匹配仅有china五个字符的行
[Cc]hina:匹配含有China或china的行
Ch.na:匹配包含Ch两字母并且其后紧跟一个任意字符之后又有na两个字符的行
Ch.*na:匹配一行中含Ch字符,并且其后跟0个或者多个字符,再继续跟na两字符
二.实例
如下通过常用实例来学习BRE和ERE匹配,源文件url.txt内容如下:
www.baidu.com
baidu.com
baidu
1.url匹配
匹配以http或者https开头,并且其后为:并且含有.的串
BRE匹配:
grep'^https\{0,1\}.*\..*' url.txt
ERE匹配:
grep-E '^https?.*\..*' url.txt
匹配结果如下:
2.Email匹配
示例文件内容为:
hfutwyy@qq.com
aaaa@
aaa@.com
aaa@gmail.com
@@baidu.com
匹配以字母数字或者下划线开头的多个字符,其后有一个@之后有多个字母数字或者下划线,其中有一个.号
grep'^[[:alpha:][:digit:]_]*@[[:alpha:][:digit:]]*\..*' email.txt
匹配结果:
hfutwyy@qq.com
aaa@.com
aaa@gmail.com
转自嘉为教育-rhce认证_rhce培训_linux培训_linux认证_linux考证