awk:ファイルの終わりと一致した後の行の印刷

awk:ファイルの終わりと一致した後の行の印刷

次の使用法メッセージを解析しようとしています。

Usage:
  docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help
...
Commands:
  build              Build or rebuild services
  bundle             Generate a Docker bundle from the Compose file
...

Command名前だけをインポートしてください。したがって、Commands:この行の前のすべての行をスキップして、次の行の最初の単語を印刷したいと思います。

  build
  bundle
  ...

現在私はやっています

docker-compose --help | sed -e '1,/Commands:/d' | awk '{ print $1 }'

これが機能している間に1つを使用できるかどうか疑われますawk。これまでに最も近いのは次のとおりです。

docker-compose --help | awk '/Commands:/,0 { print $1 }'

ただし、これには一致するCommands:行が含まれます。できますか?

ベストアンサー1

フェンスの存在を表示したら、フェンスを使用して、次の行とそれに続く行を印刷するかどうかを決定できます。たとえば、次のようになります。

awk 'x==1 {print $1} /Commands:/ {x=1}'

おすすめ記事