正则表达式Linux [关闭]

bq9c1y66  于 2023-11-17  发布在  Linux
关注(0)|答案(2)|浏览(100)

**已关闭。**此问题为not about programming or software development。目前不接受回答。

此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题相关,可以发表评论,说明在何处可以回答此问题。
5天前关闭。
Improve this question
ls [!str].
这个命令应该显示和文件不以s t或r开头,任何扩展名,但它没有这样做.我是macbook pro终端.我重新检查,但它仍然不工作.这里出了什么问题?将感谢指出谢谢

bvn4nwqk

bvn4nwqk1#

命令行shell通常不使用正则表达式,而是使用更简单的globs。[!str].匹配除str之外的任何字符,后跟一个点
要说任何东西都可以在点之前和之后,请添加以下内容:

[!str]*.*

字符串

uklbhaso

uklbhaso2#

[!str]似乎试图使用正则表达式。在它出现的上下文中,它是无效的,不返回任何内容。ls正在查找名为[!str]的文件,但没有文件,因此它不返回任何内容。
混淆来自文件globbing和正则表达式之间的相似性。这是两个非常不同的东西,具有不同的语法和功能。与正则表达式相比,文件globbing是有限的。
为了得到您想要的结果,可以使用sed或grep正则表达式过滤掉以s、t或r开头的文件。
LS-1| grep -ve“^[str]”
find命令还具有正则表达式功能:
/ -maxdepth 1 -name [!str]*

相关问题