来自 54.69.57.181 的回复: 字节=32 时间=207ms TTL=234
来自 54.69.57.181 的回复: 字节=32 时间=206ms TTL=234
来自 54.69.57.181 的回复: 字节=32 时间=205ms TTL=234
来自 54.69.57.181 的回复: 字节=32 时间=207ms TTL=234
比如我要取 时间= 和ms里面的值 有可能三位有可能两位~
awk sed 都可以
linux 文本某个段取中间值
答案:2 悬赏:80 手机版
解决时间 2021-01-01 13:51
- 提问者网友:浮克旳回音
- 2021-01-01 08:48
最佳答案
- 五星知识达人网友:底特律间谍
- 2021-01-10 05:06
1、awk可以按空格分列,取"时间=207ms"
cat a.txt|awk '{print $5}'
时间=207ms
时间=206ms
时间=205ms
时间=207ms
2、awk再按=分列,取207ms
cat a.txt|awk '{print $5}'|awk -F= '{print $2}'
207ms
206ms
205ms
207ms
3、sed '/ms//'删掉ms或者用awk按m分割
cat a.txt|awk '{print $5}'|awk -F= '{print $2}'|sed 's/ms//g'
或者
cat a.txt|awk '{print $5}'|awk -F= '{print $2}'|awk -Fm '{print $1}'
207
206
205
207
cat a.txt|awk '{print $5}'
时间=207ms
时间=206ms
时间=205ms
时间=207ms
2、awk再按=分列,取207ms
cat a.txt|awk '{print $5}'|awk -F= '{print $2}'
207ms
206ms
205ms
207ms
3、sed '/ms//'删掉ms或者用awk按m分割
cat a.txt|awk '{print $5}'|awk -F= '{print $2}'|sed 's/ms//g'
或者
cat a.txt|awk '{print $5}'|awk -F= '{print $2}'|awk -Fm '{print $1}'
207
206
205
207
全部回答
- 1楼网友:一袍清酒付
- 2021-01-10 06:04
假设文件名为 myfile
sed -r 's/.*时间=([0-9]+)ms.*/\1/' myfile \1 就代表前面的第一个group:[0-9]+
awk也可以:
awk -F"(时间=)|(ms)" '{print $2}' myfile纯粹空格分隔来数字段的方法很脆弱,可读性不好;根据关键字来分割才是比较可靠的方法。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯