我想搜索一个长句子(超过 1024 个字母)。
我有一个文本文件 ( test.txt),其中有一个长句子,如下所示:
afdafglwqgkjrldjl;ewqje;'k;g;je;;;fdsgalsdkf;akslg;safdas.....dasfsd
Run Code Online (Sandbox Code Playgroud)
现在我想检查哪一行包含单词saf。该命令仅显示整个句子:
less test.txt | grep saf
Run Code Online (Sandbox Code Playgroud)
是否可以获取句子的一部分或者我应该使用除 之外的命令grep?
不完全是您正在寻找的内容:显示匹配的行并突出显示这些行中出现的情况:
grep --color 'saf' test.txt
Run Code Online (Sandbox Code Playgroud)
用于搜索saf和显示发现的事件前后最多 15 个字符的选项:
标准的正则表达式语法,首先由 @kamil-maciorowski 在他对这个问题的评论中提到:
grep -o '.\{0,15\}saf.\{0,15\}' test.txt | grep saf --color
Run Code Online (Sandbox Code Playgroud)Perl 兼容的正则表达式语法与-P选项(如果可用):
grep -o -P '.{0,15}saf.{0,15}' test.txt | grep --color saf
Run Code Online (Sandbox Code Playgroud)带有选项的扩展正则表达式语法-E,如果您grep没有-P选项(例如在 macOS 上):
grep -o -E '.{0,15}saf.{0,15}' test.txt | grep --color saf
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
3011 次 |
| 最近记录: |