我试图为源树中以下作业右侧的字符串grep(正则表达式的新手):
some_var = %1$s %2$s ID
我试过了:
grep -ri '[[:punct:]]1[[:punct:]]s [[:punct:]]2[[:punct:]]s ID' .
grep -ri "'[[:punct:]]1[[:punct:]]s'\|'[[:punct:]]2[[:punct:]]s ID'" .
我跑了:
grep -ri some_var .
这会返回some_var,但无法确定如何返回赋值运算符的另一端。
我已经阅读了gnu grep字符类和括号表达式,但它仍然不清楚。
答案 0 :(得分:0)
使用awk
:
awk -F'[[:space:]]*=[[:space:]]*' '$1 == "some_var" { print $2 }'
或sed
:
sed 's/^some_var[[:space:]]*=[[:space:]]*\(.*\)/\1/'
如果你想使用grep
,你需要在perl regexes中使用GNU grep:
grep -oP '^some_var\s*=\s*\K.*'
但正如我所说,这只适用于GNU grep并且不是标准的。
答案 1 :(得分:0)
用GNU sed删除左侧:
$ sed 's/^some_var\s=\s*//' <<< "some_var = %1$s %2$s ID"
%1 %2 ID