awkのミラーの削除中の使い方と説明
3242 ワード
「Dockerテクニック:Dockerコンテナとミラーを削除する」という記事を見て、noneというラベルのミラーを削除する方法について説明しました.awkが使用されているので、調べてみます.次に例を示します.
多くの長い命令が分からないときは短いものに分解して勉強して理解することができます.ここで「$()」の文は単独で取り出すことができます.
この文は、次の2つのステップとしても使用できます. docker images:ローカルミラーのリストをクエリーします. awk:テキスト分析ツール、ここでの「
理解しやすいように、ここでは文を簡略化します.
次に、結果を次の2つの文と比較します.
「行の作業モードで、ファイルの各行を読み込んで、1行の内容を$0に保存します. は、内蔵変数FS(セグメントの区切り文字、デフォルトは空白文字)を使用して、この行を分割し、分割された各セグメントを対応する変数$(1-100)に格納する. 出力時に内蔵変数OFS(out FS)に従う. 次の行を読み込んで操作を続行します.
一方、
awkで希望のテキストを得ることができ、dockerの他のコマンドと組み合わせて多くの興味深い機能を実現することができます.awkの詳細については「Shellスクリプトのawk詳細」を参照してください.ここではバックアップです.Dockerに関する命令は『Dockerの学習--命令使用の詳細』を参照してください.
また、いくつかのコマンドの組み合わせが必要であれば、
および
組み合わせて
同様に、自分の状況に応じて他のコマンドを組み合わせたり、awkでテキストを処理したりすることで、より興味深い機能を実現することができます.あとdockerの命令に慣れていなければ
ここにはすべての使い方を列挙することはできません.必要もありません.もしあなたが自分で使い方をマスターすれば、しっかり覚えてもいいし、自分で必要な命令を組み合わせることもできます.
参考文献: Shellスクリプトのawk詳細 Dockerの学習--コマンド使用の詳細;
docker rmi $(docker images | awk '$1 == "" && $2 == "" {print $3}')
多くの長い命令が分からないときは短いものに分解して勉強して理解することができます.ここで「$()」の文は単独で取り出すことができます.
docker images | awk '$1 == "" && $2 == "" {print $3}'
この文は、次の2つのステップとしても使用できます.
'$1 == "" && $2 == "" {print $3}'
」はその判断条件と具体的な操作である.理解しやすいように、ここでは文を簡略化します.
docker images | awk '{print $0}'
# :
REPOSITORY TAG IMAGE ID CREATED SIZE
mono/jexus 6.24 1972cdc31613 4 days ago 727.9 MB
次に、結果を次の2つの文と比較します.
docker images | awk '{print $1}'
# :
REPOSITORY
mono/jexus
docker images | awk '{print $3}'
# :
IMAGE
1972cdc31613
「
$
」後のパラメータがそれぞれ対応する結果が規則的であることは容易である.実際、awk
は、テキストファイルが構造化されていると考えられ、各入力行をレコードとして定義し、行の各文字列をドメイン(セグメント)として定義し、ドメインとドメインの間に分割子を使用して分割します.awk
は、行ごとに1つの分割を行い、分割された「セグメント」を対応するコマンドで処理します.一方、
'$1 == "" && $2 == "" {print $3}'
の$1 == "" && $2 == ""
は、行ごとに分割された第1フィールドおよび第2フィールドが「
」であることを意味し、{print $3}
が実行され、行レコードのミラーIDが出力される.ここでは、名前とラベルがnoneのミラーを削除するには、docker rmi ImageID
でミラーを削除するしかないので、最後に行全体の記録を出力する必要はなく、ミラーのidを出力するだけでよいが、ミラーidは1行の記録が分割された3番目の$3
にあるので、{print $3}
でよい.組み合わせてみましょうdocker rmi $(docker images | awk '$1 == "" && $2 == "" {print $3}')
awkで希望のテキストを得ることができ、dockerの他のコマンドと組み合わせて多くの興味深い機能を実現することができます.awkの詳細については「Shellスクリプトのawk詳細」を参照してください.ここではバックアップです.Dockerに関する命令は『Dockerの学習--命令使用の詳細』を参照してください.
また、いくつかのコマンドの組み合わせが必要であれば、
$()
でコマンドをネストすることができます.# ID
docker images -q
および
# ID +
docker rmi ImageID
組み合わせて
#
docker rmi $(docker images -q)
同様に、自分の状況に応じて他のコマンドを組み合わせたり、awkでテキストを処理したりすることで、より興味深い機能を実現することができます.あとdockerの命令に慣れていなければ
#
docker COMMAND --help
# :
docker rmi --help
#
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
Remove one or more images
-f, --force Force removal of the image
--help Print usage
--no-prune Do not delete untagged parents
ここにはすべての使い方を列挙することはできません.必要もありません.もしあなたが自分で使い方をマスターすれば、しっかり覚えてもいいし、自分で必要な命令を組み合わせることもできます.
参考文献: