我正在尝试仅打印包含变量$ foo的行。我尝试过使用双引号和花括号无济于事。在sed中将shell变量传递给正则表达式的正确方法是什么?
sed -n 's:\("${foo}".*$\):\1:p' file.txt
答案 0 :(得分:6)
sed
就太过分了。只需使用grep
:
grep "$foo" file.txt
答案 1 :(得分:1)
尝试使用以下sed命令打印包含赋给变量foo
的值的行。
sed -n "/$foo/p" file
答案 2 :(得分:0)
使用单引号可以获得结果
$-pattern='foo'
$-sed 's/('$pattern'.*$)/<\1>/g'
fo
fo
foo
<foo>