繁体   English   中英

如何从Linux中的文本文件获取价值

[英]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}'

您也可以使用seddiablelog =替换为空

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM