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

时间:2014-11-17 15:44:03

标签: linux file search

我有一些文本格式的文件xxx.conf。我有一些文字" disablelog = 1"在这个文件中。 当我使用

grep -r "disablelog" oscam.conf

输出

disablelog = 1

但我只需要价值1。 你有什么想法吗?

4 个答案:

答案 0 :(得分:2)

一种方法是使用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

答案 1 :(得分:1)

尝试:

grep -r "disablelog" oscam.conf | awk -F= '{print $2}'

答案 2 :(得分:1)

假设您需要将其作为脚本中的var:

#!/bin/bash

DISABLELOG=$(awk -F= '/^.*disablelog/{gsub(/ /,"",$2);print $2}' /path/to/oscam.conf)
echo $DISABLELOG

调用此脚本时,输出应为1。

编辑:无论等号和值之间是否有空格,上面都会处理。正则表达式应该以任何一种方式锚定以提高性能。

答案 3 :(得分:0)

只是为了一个没有awk

的解决方案
grep -r disablelog | cut -d= -f2 | xargs
此处使用

xargs来修剪空白