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

如何使用grep匹配仅包含单个单词的行?

如何使用grep匹配仅包含单个单词的行?

嘿,我来帮你搞定这个需求!你想要用grep筛选出那些**整行只有一个无空格字符序列(也就是单个单词)**的行——比如像"title"这种单行只有一个词的会被打印出来,而带有空格的句子就不会被匹配到,对吧?

直接用这条命令就可以实现:

grep -E '^[^[:space:]]+$' 你的文件名.txt

我给你拆解一下这个命令的逻辑:

  • -E:启用扩展正则表达式模式,让语法更直观好懂
  • ^:匹配一行的开头位置
  • [^[:space:]]:匹配任何非空白字符(包括字母、数字、各种符号,只要不是空格、制表符这类空白就行)
  • +:表示前面的非空白字符至少要出现1次(避免匹配空行)
  • $:匹配一行的结尾位置

合起来就是:要求整行从开头到结尾,全部都是非空白字符,没有任何空格——完美符合你要的“只有一个无空格字符序列”的要求。

举个实际例子,假设你的文本内容是:

title
the sentence after grepping should not print anything

运行上面的命令后,只会输出第一行的"title",第二行因为包含空格,会被直接过滤掉,完全符合你的预期。

如果你只想匹配纯字母数字的单词(不想包含感叹号、下划线这类符号),可以把正则改成这样:

grep -E '^[[:alnum:]]+$' 你的文件名.txt

这里的[[:alnum:]]只匹配字母和数字,这样像"hello_world"或者"test!"这类带符号的行就不会被匹配到了。

备注:内容来源于stack exchange,提问作者palmasd1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 06:49:38