当前位置:首页 » 操作系统 » linux正则

linux正则

发布时间: 2022-01-10 04:55:19

linux命令行大全:什么是正则表达式

前面我们已经接触过命令行提供的许多特性和工具,并且也遇到过一些相当神秘的shell特性及命令,比如shell扩展和引用、键盘快捷键和命令历史记录等,更不用提vi编辑器了。正则表达式也延续了这种传统,而且可以说是众多特性中最神秘的一个(该说法应该会持有争议)。当然,并不是说这些特性不值得大家花时间去学习。恰恰相反,熟练掌握这些用法会给人意想不到的效果,尽管它们的全部价值可能不会立即体现出来。

❷ linux中 正则表达式和通配符的区别

通配符
它是由shell解析,并且一般用于匹配文件名,实际上就是shell解释器去解析的特殊符号,linux系统通配符有几下几种:
*:匹配任意多个字符
?:匹配任意一个字符
[...]:匹配中括号内出现的任意一个字符
[!...]:不匹配中括号内出现的任意一个字符

一般出现在要shell命令或脚本中,匹配特定的文件名

正则表达式
它是一个字符匹配标准,一些命令工具按此标准实现字符匹配,根据命令支持的匹配功能可分为基础正则表达式和扩展正则表达式,常用于支持正则表达式的工具,如sed,grep,awk...
有如下一些常用的匹配元字符:

字符匹配
.:匹配任意单个字符
*:匹配其前面一个字符出现任意次
?:匹配其前面的字符1次或0次
+:匹配其前面一个字符出现至少一次(在扩展正则表达式中)

位置匹配
^:锚定行首
$:锚定行尾
\<或\b:锚定词首,其后面的任意字符必须作为单词首部出现
\>或\b:锚定词尾,其前面的任意字符必须作为单词尾部出现
\B:非单词的开头或结尾
^$:空白行

分组() :
(ab)* : 匹配ab这个分组出现任意次
\1:引用第一个左括号以及与之对应的右括号所包括的所有内容,同理还有\2,\3

特殊子字符类:
[:alnum:] :任何字母和数字
[:alpha:] :任何字母
[:cntrl:] :控制字符. 在ASCII表中对应八进制000 到 037, 和177 ('DEL').
[:digit:] :任何数字
[:graph:] :匹配打印字符,相当于'[:alnum:]' +'[:punct:]'.
[:lower:] :小写字母
[:print:] :可打印字符,相当于 '[:alnum:]', '[:punct:]', 和space.
[:punct:] 标点符号,'! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ' { | } ~'
[:space:] 空白字符,tab, newline, vertical tab, form feed, carriage return, and space.
[:upper:] 大写字母
[:xdigit:] 任何16进制的数字,相当于[0-9a-fA-F]
所以:^[[:space:]]*$ :匹配没有任何内容的行

需要注意:[]中的特殊字符如.已经失去了其特殊含义,和方括号中的普通字符[abc]一样。

❸ Linux的正则表达式问题。

你好,没有学过LINUX的正则,不过正则表达式,一般都相近,可能会有一些小差别。我可以用javascript的正则式表达上面两个问题,希望对你有帮助:

1

❹ linux正则表达式

sed 's/#.*$//g' 把#开头的行替换成空行
sed '/^$/d' 把空行删掉
s是替换

g是指替换掉所有符合条件的
d是删除
^行的开头
$行的结尾
.除 "\n" 之外的任何单个字符
*前面的子表达式零次或多次

❺ linux正则表达式 ;s/^[ \t]*//是什么意思

s/ro.swversion=// 是将ro.swversion删掉

s/^[ \t]* 是将这一行起始的空白字符删掉

s/[ \t].*//' 是将空白及以后的内容删掉

比如:
字符串 ' hello ro.swversion ok'
做上面的处理后,结果就是hello

❻ linux ls正则表达式

ls就是默认排序的。

所以:


ls只支持通配符,不支持正则,所以单纯用ls是不能实现的。

一些正则过滤操作需要结合支持正则的命令如grep、sed或awk。

例如:ls | grep "[0-9]$"

得到:aaa1 aaa2 aaa3

❼ Linux正则表达式

((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))
IP正则

❽ linux里面,\d 是不是正则表达式的元字符

grep
root
/etc/*
*此是通配符,不是正则表达式
sed
's/
*/
/g'
file
在sed或者awk就是采用正则表达式来匹配,正则里面.表达任意字符*表示重复前面0次或多次,所以.*代表匹配任意字符
什么情况下该用,这个要凭经验,一般sed
awk
grep
这三个命令使用正则
grep
"[^a-z]*"
aa.txt
grep像这样用就是正则表达式

❾ 关于linux的正则表达式

\? 是转义,表示0个或多个。

❿ linux find 正则表达式

1:
find 0?
0?代表的是要查找的路径, 意思是在0?这个路径下查找. bash的?匹配任意一个字符,这里0?匹配到了01和0s. 在01和0s下查找文件,返回了01 0s.

2:
find 0.
在0.下查找,bash里.就是字符'.' ,因为没有0.这个文件, 所以报上面的错误.

3.
find ./ -regex "0."
在当前目录查找匹配正则0.的文件, -regex的正则"0." 使用的是emacs的正则, 匹配0后面跟一个字符. 错误是在于-regex的正则表达式必须匹配整个路径, 文件名前的路径"./"也需要匹配. 可以这样写
find ./ -regex "./0."

热点内容
单片机android 发布:2024-09-20 09:07:24 浏览:765
如何提高三星a7安卓版本 发布:2024-09-20 08:42:35 浏览:664
如何更换服务器网站 发布:2024-09-20 08:42:34 浏览:311
子弹算法 发布:2024-09-20 08:41:55 浏览:289
手机版网易我的世界服务器推荐 发布:2024-09-20 08:41:52 浏览:817
安卓x7怎么边打游戏边看视频 发布:2024-09-20 08:41:52 浏览:162
sql数据库安全 发布:2024-09-20 08:31:32 浏览:94
苹果连接id服务器出错是怎么回事 发布:2024-09-20 08:01:07 浏览:507
编程键是什么 发布:2024-09-20 07:52:47 浏览:658
学考密码重置要求的证件是什么 发布:2024-09-20 07:19:46 浏览:481