我有以下格式的数据(存储在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的第一行):
答案 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
此解决方案基于您的帖子提供。