用于检索所需行的 Linux 命令

标签 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 的第一行):

最佳答案

在名为 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/

相关文章:

linux - 两台linux机器之间使用wlan进行数据通信

linux - 获取使用 Net::SSH::Expect 的 exec 执行的命令的退出状态

linux - 如何修复从 Linux 上的 Docker 启动的 Qt5 (QML) GUI 中的 libGL 错误?

Bash:在新行上设置新命令而不执行

ubuntu - 在 Ubuntu 20.04 上作为非 root super 用户时,我无法从集成的 VSCode 终端打开新的 VSCode 实例

ubuntu - Ubuntu 服务器上的 Mercurial 服务器

linux - perl - 打印 sql 行

android - 使用 gradle 每晚构建 android 项目

linux - 使用启用密码的 sudo 帐户更改 root 密码身份验证的脚本

linux - 无法加载 inputrc 文件