Grep-w正在忽略连字符[-]
我有如下文本文件Grep-w正在忽略连字符[-],grep,Grep,我有如下文本文件sample.txt ID=Sam-S-PA.path1;Name=Sam-S-PA 23 Hz42 ID=GlcAT-S-PA.path1;Name=GlcAT-S-PA 45 iu7s ID=TfIIA-S-PA.path1;Name=TfIIA-S-PA 76 5ghz ID=S-PA.path1;Name=S-PA 69 ivcs ID=TyrRS-PA.path1;Name=TyrRS-PA 51 Pqas ID=HisRS-PA.path
sample.txt
ID=Sam-S-PA.path1;Name=Sam-S-PA 23 Hz42
ID=GlcAT-S-PA.path1;Name=GlcAT-S-PA 45 iu7s
ID=TfIIA-S-PA.path1;Name=TfIIA-S-PA 76 5ghz
ID=S-PA.path1;Name=S-PA 69 ivcs
ID=TyrRS-PA.path1;Name=TyrRS-PA 51 Pqas
ID=HisRS-PA.path1;Name=HisRS-PA 32 Majs
我想使用grep提取只包含S-PA的行。我尝试了以下命令:
grep -w "S-PA" sample.txt
但它给出的输出包含了我不想要的所有条目。我想要以下输出
ID=S-PA.path1;Name=S-PA 69 ivcs
请引导我。提前感谢。使用正则表达式
grep-oE“S-PA(+)”sample.txt
或
egrep-o“S-PA(+)”sample.txt
似乎要匹配=S-PA
,后跟一个空格。使用
grep '=S-PA ' sample.txt
或
其中[[:blank:][]
匹配常规空格或制表符
请参阅。使用负片向前看和向后看
$ grep -P '(?<![\w-])S-PA(?![\w-])' sample.txt
ID=S-PA.path1;Name=S-PA 69 ivcs
$grep-P'(?我的解决方案不适合您吗?请检查。
$ grep -P '(?<![\w-])S-PA(?![\w-])' sample.txt
ID=S-PA.path1;Name=S-PA 69 ivcs