[英]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.