[英]How get value from text file in linux
我有一些文本格式的文件xxx.conf。 我在此文件中有一些文本“ disablelog = 1”。 当我使用
grep -r "disablelog" oscam.conf
输出是
disablelog = 1
但是我只需要值1。请问您有什么主意吗?
一种方法是使用awk
仅打印值
grep -r "disablelog" oscam.conf | awk '{print $3}'
您也可以使用sed
将diablelog =
替换为空
grep -r 'disablelog' oscam.conf | sed -e 's/disablelog = //'
如果你也想有或没有空间之前和之后获得线=
使用
grep -r 'disablelog' oscam.conf | sed 's/disablelog\s*=\s*//'
上面的命令也将匹配
disablelog=1
尝试:
grep -r "disablelog" oscam.conf | awk -F= '{print $2}'
假设您需要在脚本中将其作为变量:
#!/bin/bash
DISABLELOG=$(awk -F= '/^.*disablelog/{gsub(/ /,"",$2);print $2}' /path/to/oscam.conf)
echo $DISABLELOG
调用此脚本时,输出应为1。
编辑:无论等号与值之间是否存在空格,以上内容都可以解决。 正规表达式应以两种方式锚固以提高性能。
只是为了好玩而没有awk
的解决方案
grep -r disablelog | cut -d= -f2 | xargs
xargs
在这里用于修剪空白
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.