中易网

shell 命令*的使用问题

答案:6  悬赏:0  
解决时间 2021-02-14 14:24
shell 命令*的使用问题
最佳答案
ls只支持通配符,不支持正则表达式。
grep、sed和awk命令才支持正则。

在通配符中,*表示任意数目的任意字符;
在正则表达式中,*表示重复前面的字符任意多次(包括0次)。
是不一样的含义。

你要用正则的话,可以用管道将ls的结果送给grep命令来处理,即用如下形式来实现:
ls|grep ^dd*
^表示匹配字符串开头(如果你要求文件名以字母d开头的话就必须加这个)
因为*也匹配前面的d出现0次的情况(即整个文件名中d一次都不出现),因此如果你要求必须d至少出现一次,这里就需要写两个d。

下面这个也行:
ls|egrep ^d+
+表示匹配前面的字符1次或多次
但grep不支持+,只能用egrep
全部回答
用来匹配任意个数(包含0个)的字符.
传统的网络服务程序,如ftp,pop和telnet在本质上是不安全的,因为它们使用明文传送口令和数据,很容易被冒充真正服务器的中间人修改通信数据,影响你的正常通信。 ssh可以对你的数据进行加密,所以可以防止"中间人"攻击,dns和ip欺骗,还一个好处是它对传输数据进行了压缩,可以加快传输的速度。
你说的*的解释是正则表达式里面的* shell执行glob匹配和正则表达式概念不通,glob的匹配规则具体可以网上搜一下 或者参考man bash内容
*号的解释是:配前面的子表达式零次或多次,这个是在正则表达式中的解释,但是ls不支持正则表达式 ls 里面的* 表示任意字符。 知道这个应该就知道为什么得不到你要的结果了
楼主要分清通配符中的*和正则表达式中的*,他们是不一样的。你所说的意思是正则表达式中*的用法。而ls d*是通配符的使用方法,它代表任何字符出现0到多次。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
昨天晚上做梦,和女朋友去看电影。但问题是梦
日语你的手很好看怎么写
浪漫情缘花艺在哪里啊,我有事要去这个地方
我的邮政银行卡是广东茂名开的,现在在东莞丢
六巷村地址在哪,我要去那里办事
汽车坐久了耳朵响,咋回事,高档轿车会吗
小天才幼儿园怎么去啊,有知道地址的么
玩具四驱车上的普通电机用南孚电池和细长的螺
天天酷跑用2个九尾灵狐 假面兔 深渊幼龙 还有
海尔家电体验馆在什么地方啊,我要过去处理事
100/60是正常的血压吗
做金融是做贷款好还是搞投资好呢
正宗逍遥镇老何家牛肉胡辣汤地址在哪,我要去
7200转的和5400转的到底差距有多大
南坪万寿花园最近的医院有哪些,斜对面的有个
推荐资讯
广告策划的论文要怎么写
东孚镇鼎美小学在哪里啊,我有事要去这个地方
金川汇传动机械公司地址在哪,我要去那里办事
艾格墙纸怎么去啊,有知道地址的么
沈丘县周口中国银行银行卡助农取款服务点地址
陆记五金店地址在什么地方,想过去办事
漂白燕窝用的是什么双氧水?
那种外面有毛绒的靴子脏了要怎么清洗
cf这游戏怎么老是玩着就一半就网络异常,以前
关于PPT演示放映时候的
男生喜欢前凸后翘的女生还是喜欢瘦的女生?
ocz arc100、东芝q200ex、浦科特m6s选哪个好
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?