小编Adr*_*anL的帖子

为什么通过 grep 的输出管道以块的形式出现而不是逐行出现?

我的命令行存在巨大的性能问题。如果我输入:

hcidump -a
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

> HCI Event: LE Meta Event (0x3e) plen 42
    LE Advertising Report
      ADV_IND - Connectable undirected advertising (0)
      bdaddr 78:A5:04:17:9F:66 (Public)
      Flags: 0x06
      Unknown type 0xff with 25 bytes data
      RSSI: -26
> HCI Event: LE Meta Event (0x3e) plen 41
    LE Advertising Report
      SCAN_RSP - Scan Response (4)
      bdaddr 78:A5:04:17:9F:66 (Public)
      Complete local name: 'BEACON 17:9F:66'
      TX power level: 0
      Unknown type 0x16 with 7 bytes data
      RSSI: -26
Run Code Online (Sandbox Code Playgroud)

每个信息块都实时出现在屏幕上。但是因为我只需要 RSSI 中的值,所以我使用这个命令来获取它:

hcidump -a | …
Run Code Online (Sandbox Code Playgroud)

pipe sh

4
推荐指数
1
解决办法
552
查看次数

从shell获得两行

我用

cmd | egrep 'ID|Value'
Run Code Online (Sandbox Code Playgroud)

在我的命令行上输出以下输出:

    ID: 2
Value: 21
    ID: 1
Value: 25
    ID: 1
Value: 22
    ID: 3
Value: 56
    ID: 1
Value: 23
    ID: 2
Value: 50
    ID: 2
Value: 56
    ID: 3
Value: 11
    ID: 3
Value: 26
Run Code Online (Sandbox Code Playgroud)

我想用一个特殊ID过滤它.但是当我使用时:

egrep 'ID: 1|Value'
Run Code Online (Sandbox Code Playgroud)

它将仅使用ID 1显示相同的输出,但显示所有ID的值.

我已经读过关于awk,sed和regex的内容了,但我找不到任何可以帮助我的东西,但我也没那么深入.

有人可以提出一个想法,或者告诉我这是一个错误的方法,我应该采取不同的方式,如何做?

按需输出:

    ID: 1
Value: 25
    ID: 1
Value: 22
    ID: 1
Value: 23
Run Code Online (Sandbox Code Playgroud)

bash awk grep sed

1
推荐指数
3
解决办法
194
查看次数

标签 统计

awk ×1

bash ×1

grep ×1

pipe ×1

sed ×1

sh ×1