Linux命令检索所需的行

时间:2015-06-13 13:25:01

标签: linux bash ubuntu ubuntu-12.04

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

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

现在使用grep我想检索“http://stackoverflow”作为第一个字符串出现的行,即如果我在空格上分割行,那么http://stackoverflow应该是第一个字符串。

基于此,我的输出应为:

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

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

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

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

4 个答案:

答案 0 :(得分:2)

您可以使用正则表达式:

grep ^http://stackoverflow file1.txt

^匹配行的开头

答案 1 :(得分:2)

在一个名为t0:

的文件中给出几行这样的行
<http://stackoverflow> <isA> "website".
yes <http://stackoverflow> <isA> "website".
<website> <nameIs> <http://stackoverflow>.

这个命令可以解决问题。注意网站后面的空格:

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

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

awk '{ if($1 == "<http://stackoverflow>") {print $0} }' t0

awk按空格拆分,然后检查拆分中的第一项是<http://stackoverflow>。如果是,请打印由$0

表示的整行

答案 2 :(得分:1)

^

\匹配行的开头
<匹配转义字符{{1}}

答案 3 :(得分:0)

简单使用头部或尾部comamnd

head -1 file1.txt

tail -1 file1.txt 

此解决方案基于您的帖子提供。