質問: gnu grepは選択したグループを出力できますか? gnu grepを使用して式から一致するグループを取得することは可能ですか?例:echo "foo 'bar'" | grep -oe "'([^']+)'" これは「バー」を出力します。しかし、grepを介してもう一度送信する必要がない(つまり、一致するグループを取得する)ことなく、「バー」だけを取得したいと思います。それは可能ですか?
回答: これにはsedを使用できます。 bsdの場合sed:echo "foo 'bar'" | sed -e "s/.*'([^']+)'.*/\\1/" または、-eオプションなし:sed "s/.*'\([^']\+\)'.*/\1/" これは複数行入力では機能しません。そのために必要なもの:sed -n "s/.*'\([^']\+\)'.*/\1/p"