如何使用grep获取标签值

时间:2018-09-07 03:42:49

标签: regex unix grep

我有一个文件(例如file.txt),其中包含如下数据

export ARA_DATABASE="mysql+pymysql://ara:password@localhost/ara?charset=utf8mb4"

ara-manage runserver -h <server_ip> -p 9191 -d

如何使用grep获取代码18的值?

2 个答案:

答案 0 :(得分:1)

根据(gnu)grep的要求:

echo "^A15=0^A18=20170924065847986457^A21=0^A22=2" | grep -oP "A18=\K\d+"

输出:

20170924065847986457

\ K是(?<= pattern)的简短高效形式,可在要输出的文本之前将其用作零宽度后向断言。

答案 1 :(得分:0)

这不适用于grep,后者是用于过滤而非提取的。

您可以改用perl

perl -pe 's/.*\^A18=([^^]+).*/$1/' <<< '^A15=0^A18=20170924065847986457^A21=0^A22=2'

这将输出:20170924065847986457