Roo*_*ode 5 regex awk grep sed
$ acpi
Battery 0: Charging, 18%, 01:37:09 until charged
Run Code Online (Sandbox Code Playgroud)
如何在没有百分比字符的情况下 grep 电池电量值 (18)?
这应该可以,但我得到一个空结果:
acpi | grep -e '(?<=, )(.*)(?=%)'
Run Code Online (Sandbox Code Playgroud)
您的正则表达式是正确的,但可以与Experimental -P或perl mode regex optionin一起使用gnu grep。您还需要-o仅显示匹配的文本。
正确的命令是:
grep -oP '(?<=, )\d+(?=%)'
Run Code Online (Sandbox Code Playgroud)
但是,如果您没有,gnu grep那么您也可以sed像这样使用:
sed -nE 's/.*, ([0-9]+)%.*/\1/p' file
Run Code Online (Sandbox Code Playgroud)
18
Run Code Online (Sandbox Code Playgroud)