You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux命令ls . | grep '.txt$'中$符号的作用是什么?

关于grep中$符号的作用解释

$是正则表达式里的行尾锚定符,它的作用是限定匹配的内容必须出现在一行文本的末尾位置。所以grep '.txt$'的意思是:只匹配那些以.txt结尾的行,对应到你的场景就是只筛选出文件名刚好以.txt结尾的文件。

你去掉$后输出一致,是因为当前目录里的所有带.txt的文件,.txt都刚好在文件名末尾——没有那种文件名中间包含.txt但结尾不是的情况(比如file.txt.bak、mytxt_doc这类)。如果有这类文件,两者的区别就很明显了:

  • 用grep '.txt'会匹配所有包含.txt字符串的行,不管.txt在文件名的哪个位置
  • 用grep '.txt$'只会严格匹配.txt在文件名最后面的行

举个实际例子:
假设你的目录里有三个文件:note.txt、report.txt.bak、data_txt.csv

  • 执行ls | grep '.txt'会输出全部三个文件
  • 执行ls | grep '.txt$'只会输出note.txt

内容的提问来源于stack exchange,提问作者Shamirul Huda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 00:22:00