一重引用符で最初のパターンを取得したいと思います。
$ cat test
if (response == 'good' and name == 'john')
このコマンドを使用すると、単一引用符で囲まれた最後のパターンを取得できます。
$ sed -nr "s/.*'(.*)'.*/\1/p" test
john
返してほしい
良い
以下はトリックを行う必要があります
sed -nr "s/[^']*'([^']*)'.*/\1/p" test
これを実現するにはいくつかの方法があります。たとえばawk
:
awk -F"'" '{print $2}'
またはPerl
:
perl -ne 'print "$1\n" if /'"'"'(.*?)'"'"'/;'
この概念を使用して
sed "s/^[a-z].* ([a-z].*== '\([a-z].*\)' [a-z].*== '\([a-z].*\)')$/\1/" inputfile