Linux里面,例如一句 bw=1234.5KBs 如何用cut(或者别的命令),截取出 数字 1234.5 啊?非常感谢!

Linux里面,例如一句 bw=1234.5KBs 如何用cut(或者别的命令),截取出 数字 1234.5 啊?非常感谢!,第1张

echo "bw=1234.5KB/s" | sed -r 's/[^0-9.]+//g'

不为数字且不为点号的字符都替换为空(去除)。

反之,用grep过滤出数字和点号也可以。

echo "bw=1234.5KB/s" | grep -oE "[0-9.]+"

awk也行:

echo "bw=1234.5KB/s" | awk -F"(=)|(KB)" '{print $2}'

1、用sed匹配3位以上的数字

2、[root@server28 ~]# more a.txt

021

23

898990

314159265358975

3、[root@server28 ~]# sed -nr '/^[[:digit:]]{3,}$/p' a.txt|grep -v ^0

21312

898990

314159265358975

如果是脚本语言就很简单,perl 中的正则表达式很容易的,

#!/usr/bin/perl -w

use strict

my %hash

while(<>){

if(/(\S+)*\s=*\s(\S+)/){

my($address,$file)=($1,$2)

$hash{$address}=$file

}

}

print "$hash{recordType}\|$hash{servedIMSI}\n"

print "$hash{sgsniPBinV4Address}\|$hash{chargingID}\n"

如果你要使用shell的话,直接写匹配就行啦


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7251492.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存