次のように正規表現一致の間の部分を印刷したいと思います。
echo "this is foo and another foo quux" | sed 's/this\(.*\)another.*/\1/'
印刷する
is foo and
これと別の印刷物の一部を取得したいので、まったく問題ありません。
しかし、ソースコードを解析して使用したい場合:
cat source_code | sed 's/.*AdulterateFood\(.*\)DangerousFood.*/\1/'
そして、AdulterateFood と DangerousFood はソース コードで 1 回だけであることを知っていますが、ファイル全体のすべてを出力します:( なぜだろうか.. AdulterateFood と DangerousFood は別の行にあります。
ご提案いただきありがとうございます。