我有一些文本格式的文件xxx.conf。我有一些文字" disablelog = 1"在这个文件中。 当我使用
grep -r "disablelog" oscam.conf
输出
disablelog = 1
但我只需要价值1。 你有什么想法吗?
答案 0 :(得分:2)
一种方法是使用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
答案 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
来修剪空白