问个sed的正则表达式

xlpang_hn 2008-11-14 01:02:17
文件file.txt其内容为:
ab
axb

现有命令
a. sed -n '/^a.*b$/p' file.txt
结果:
ab
axb
b. sed -n '/^a*b$/p' file.txt
结果:
ab

怎么解释? .与.*有什么区别呢? 哪位大吓指点一下,谢谢!
...全文
100 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
APOLLO_TS 2008-11-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fox000002 的回复:]
Perl code^a.*b$ # 匹配 a 和 b 中间有任何字符的情况

^a*b$ # 匹配 a 和 b 中间有任意个a的情况




差别是 * 对应的是 . 还是 a
[/Quote]

经典--滔滔江水!!
快乐田伯光 2008-11-14
  • 打赏
  • 举报
回复
sed -n '/^a.*b$/p' file.txt
sed -n '/^a*b$/p' file.txt

上面有一个点号可以匹配任意字符,下面真接*号只能匹配多个前导字符a,
xlpang_hn 2008-11-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 joyself 的回复:]
shell中正则表达式


^                只匹配行首
$                只匹配行尾
*                一个单字符后紧跟*,匹配0个或多个此单字符
[]              匹配[]内字符。可以是一个单字符,也可以是字符序列。
可以使用-表示[]内字符序列范围,如用[1-5]代替[12345]
\                用来屏蔽一个元字符的特殊含义。
因为有时在shell中一些元字符有特殊含义。
\可以使其失去应有意义
.                匹配任…
[/Quote]
* 一个单字符后紧跟*,匹配0个或多个此单字符
如果它前面没有字符,比如表达式 "*xxx"将做何解释?
joyself 2008-11-14
  • 打赏
  • 举报
回复
shell中正则表达式



^ 只匹配行首
$ 只匹配行尾
* 一个单字符后紧跟*,匹配0个或多个此单字符
[] 匹配[]内字符。可以是一个单字符,也可以是字符序列。
可以使用-表示[]内字符序列范围,如用[1-5]代替[12345]
\ 用来屏蔽一个元字符的特殊含义。
因为有时在shell中一些元字符有特殊含义。
\可以使其失去应有意义
. 匹配任意单字符
fox000002 2008-11-14
  • 打赏
  • 举报
回复
^a.*b$ # 匹配 a 和 b 中间有任何字符的情况

^a*b$ # 匹配 a 和 b 中间有任意个a的情况


差别是 * 对应的是 . 还是 a

23,215

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧