小编blu*_*ylo的帖子

使用grep从一行中提取多个值

文件:

timestamp1 KKIE ABC=123 [5454] GHI=547 JKL=877 MNO=878      
timestamp2 GGHI ABC=544 [ 24548] GHI=883 JKL=587 MNO=874    
timestamp3 GGGIO ABC=877 [3487] GHI=77422 JKL=877 MNO=877    
timestamp4 GGDI ABC=269 [ 1896] GHI=887 JKL=877 MNO=123
Run Code Online (Sandbox Code Playgroud)

注意:您有时在'['和下一个数字之间)有一个空格.

当JKL = 877时,我想要时间戳,ABC和GHI

解决方案1:

timestamp1 ABC=123 GHI=547
timestamp3 ABC=877 GHI=77422
timestamp4 ABC=269 GHI=887 
Run Code Online (Sandbox Code Playgroud)

解决方案2(最好的一个):

TIMESTAMP   ABC GHI

timestamp1  123 547

timestamp3  877 77422

timestamp4  269 887
Run Code Online (Sandbox Code Playgroud)

我知道如何单独使用这些值,但不能同时使用所有这些值.

A.解决方案1:

grep JKL=877 file | awk '{print $1}'  
grep JKL=877 file | grep -o '.ABC=[0-9]\{3\}'
grep JKL=877 file | grep -o …
Run Code Online (Sandbox Code Playgroud)

regex bash shell awk

3
推荐指数
2
解决办法
4502
查看次数

标签 统计

awk ×1

bash ×1

regex ×1

shell ×1