Linux 提取从字符串开始直到空格字符的文本

Linux 提取从字符串开始直到空格字符的文本,linux,bash,sed,grep,Linux,Bash,Sed,Grep,示例输入文件 a boogy RqIANPGRTSSikGFb1Aoi6Q 5 1 1311234 0 1.7gb 1.7gb a boom RqIANPGRTSSikGFb1Aoi6Q 5 1 1311234 0 1.7gb

示例输入文件

a   boogy                                   RqIANPGRTSSikGFb1Aoi6Q   5   1    1311234            0      1.7gb          1.7gb
a   boom                                   RqIANPGRTSSikGFb1Aoi6Q   5   1    1311234            0      1.7gb          1.7gb
a   baby                                   RqIANPGRTSSikGFb1Aoi6Q   5   1    1311234            0      1.7gb          1.7gb
a   boom                                   RqIANPGRTSSikGFb1Aoi6Q   5   1    1311234            0      1.7gb          1.7gb
预期:查找所有以boo开头的单词,并使用
sed
grep
命令从行中提取它们

boogy
boom
boom
我试过:

$ grep -oP 'boo\K[^ ]*' input_file
gy
m
m
这里的问题是它没有给出开始boo

请尝试以下操作:

grep-o“\bboo[a-z]*\b”输入文件


您必须使用单词边界
\b
。在这个边界内,您需要一个有效的正则表达式模式
boo[a-z]*

,基于什么标准?都以b开头?两者都在第二列?两个都有4个字母?此外,您还应该包括您尝试过的内容,并解释您陷入困境的原因。好的,我发现了:grep-oP'boo\K[^]*'这里的问题是,它没有给我仅从第二个字段开始的“boo”:
awk'$2~/^boo/{print$2}文件
只需删除
\K
(请参阅)。。。使用grep-oP'boo[^]*'