我有以下形式的数据(存储在 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 的第一行):
最佳答案
在名为 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
表示的整行
关于用于检索所需行的 Linux 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30819185/