String Bash在指定字符之前获取n个字符
这是字符串:String Bash在指定字符之前获取n个字符,string,bash,String,Bash,这是字符串: Volume: 0: 120% 1: 128% 我想在“%”字符前加3个字符。因此,对于本例,输出必须类似于120128。我怎样才能做到这一点呢?假设您实际需要空格和a%之间的所有内容(本例中也是如此),您可以: awk '{print $NF}' RS=% ORS=' ' 您可以使用此grep: $ grep -Po '...(?=%)' file 120 128 这与: grep -Po '.{3}(?=%)' file 或者,如果要确保获得数字,请执行以下操作:
Volume: 0: 120% 1: 128%
我想在“%”字符前加3个字符。因此,对于本例,输出必须类似于
120128
。我怎样才能做到这一点呢?假设您实际需要空格和a%之间的所有内容(本例中也是如此),您可以:
awk '{print $NF}' RS=% ORS=' '
您可以使用此
grep
:
$ grep -Po '...(?=%)' file
120
128
这与:
grep -Po '.{3}(?=%)' file
或者,如果要确保获得数字,请执行以下操作:
grep -Po '[0-9]{3}(?=%)' file
解释
基本思想是在找到%
之前打印三个字符<代码>(?=%)表示这一点,称为“前瞻”
在-Po
中,我们指出grep可以使用Perl正则表达式(-p
),只打印匹配项(-o
)