Linux 检索所需行的命令

Linux command to retrieve desired lines

我有以下形式的数据(存储在file1.txt):

<http://Whosebug> <isA> "website".
<website> <nameIs> <http://Whosebug>.

现在使用 grep 我想检索“http://Whosebug" occurs as the first string i.e. if I split the lines on spaces then http://Whosebug 应该是第一个字符串的行。

基于此我的输出应该是:

<http://Whosebug> <isA> "website".

是否可以使用 grep 或任何其他 linux 命令执行此操作。因为如果我使用:grep http://Whosebug file1.txt,那么我得到输出:

<http://Whosebug> <isA> "website".
<website> <nameIs> <http://Whosebug>.

即我得到了这两行(而我想要的输出应该只包含 file1.txt 的第一行):

您可以使用正则表达式:

grep ^http://Whosebug file1.txt

^ 匹配行首

在名为 t0 的文件中给出如下几行:

<http://Whosebug> <isA> "website".
yes <http://Whosebug> <isA> "website".
<website> <nameIs> <http://Whosebug>.

这个命令可以解决问题。注意站点后space:

grep "^<http://Whosebug> " t0
Result:
<http://Whosebug> <isA> "website".

如果选择使用awk,可以这样写:

awk '{ if( == "<http://Whosebug>") {print [=12=]} }' t0

awk 按 space 拆分,然后检查拆分中的第一项是否为 <http://Whosebug>。如果是,打印由 [=16=]

表示的整行
grep ^\<http://Whosebug file1.txt

^ 匹配行首
\ 匹配转义字符 <

简单使用head或tail命令

head -1 file1.txt

tail -1 file1.txt 

此解决方案是根据您的post提供的。