繁体   English   中英

使用 grep 搜索以字母“s”开头的单词

[英]Use grep to search for words beginning with letter "s"

我正在尝试使用 grep 来查看文件,并找到以小写字母“s”开头的单词。 文件片段:

sjpope   pts/2    161.133.12.95    10:21am 43.00s  0.13s  0.01s  man bc
rmschalk pts/3    161.133.9.147    10:22am  1.00s  0.10s  0.02s  vi testb
jntrudel pts/4    161.133.9.11     10:23am  2.00s  0.09s  0.00s  vi testb
tjbanks  pts/5    161.133.9.70     10:41am  8.00s  0.06s  0.04s  -ksh

我希望 output 的行带有“s”。

对于所有想要搜索以给定字母开头的单词而不是行的所有这些单行代码:

grep -E '\bs' file.txt # all words starting with s
grep -E 's\b' file.txt # all words ending with s

我知道这是非标准的grep行为( \\b regex 锚,这意味着分词不在扩展的正则表达式标准中),但它适用于大多数现代系统。

请尝试以下操作:

grep ^s file.txt

使用标准grep可以搜索以S开始,使用\\< (开始的词)和\\>字的终点)的正则表达式:

grep '\<[s][[:alpha:]]*\>' file.txt # Words starting with s

此外,如果要输出以 s 开头的,则只需使用^字符:

grep '^s' file.txt # Lines starting with s

你可以使用

grep ^s 文件.txt

命令以获取从 s 字符开始的所有行的列表。

您是否尝试过使用正则表达式? ^字符将从字符串的开头开始搜索。 例如,在您的特定情况下,如果您想要所有以小写 's' 开头的结果:

    cat file | grep ^s

或者干脆

grep ^s file

请使用以下命令 grep ^s 文件名

如果您想在一行中搜索特定的单词/字符串,您可以尝试以下操作。 这将提取以 s 开头的整个单词。

 grep -o '\bs\w*'

如果要在文件中搜索,则可以尝试以下操作。

 egrep -o '\bs\w*' sameple.txt

如果要将结果保存在新文件中,则可以尝试以下操作。

 egrep -o '\bs\w*' sample.txt > newsample.txt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM