使用awk从文本文件中提取数据

Gra*_*ell 1 linux awk sed

可能重复:
在文本文件中的两个点之间提取数据

例如:

Reply: [200/OK] bytes=29086 time=583ms
Run Code Online (Sandbox Code Playgroud)

我想提取"time ="和"ms"之间的值

预期结果:

"583"

Mic*_*jer 8

我会使用sed,但因为你要求awk:

echo "Reply: [200/OK] bytes=29086 time=583ms" | awk -F'time=|ms' '{print $2}'
Run Code Online (Sandbox Code Playgroud)

-F定义延长字段分隔符的regexp.因此我们定义"time ="或"ms"分隔字段,然后打印第二个字段.

使用sed,它将是:

echo "Reply: [200/OK] bytes=29086 time=583ms" | sed 's/.*time=\([0-9]*\)ms.*/\1/'
Run Code Online (Sandbox Code Playgroud)