85934


あるLinuxのコマンドで"imagestatus"というのがあったと仮定してください。  
そのコマンドに画像ファイル（拡張子：jpg）を引数で渡すと以下のような値を出力します：

[code]

    File: sampleimg.jpg
    Resolution: 720 x 547
    Channels: 3
    Channel Types: RGB without Alpha
    
[/code]

これを"File": "Resolution"にして以下のようなフォーマットに直したいのです。

[code]

    sampleimg.jpg: 720 x 547
    
[/code]

imagestatsusに付けられるoptionが分からない前提で出力値から必要なものだけを取り出すにはどうしたら良いでしょうか？


CC BY-SA 4.0
2022-01-25T18:05:19.950
85931
2022-01-26T00:04:19.003
35503
question
linux bash command-line
架空のLinuxコマンドの出力値から必要なものだけを取り出す方法。


awkで良ければ`awk '{FS=": "}{ if($1 ~ "File|Resolution") {print $2} }'`のように書けます。

FS(フィールド区切り文字)で"File"と"sampleimg.jpg"を`$1`と`$2`に格納し、  
if文の正規表現で`$1`の抽出対象を判別して`$2`を出力します。  
awkは改行区切りで出力するので、下記のサンプルコードては最後にsedで整形しています。

[code]

    echo "File: sampleimg.jpg
    Resolution: 720 x 547
    Channels: 3
    Channel Types: RGB without Alpha" | \
    awk '{FS=": "}{ if($1 ~ "File|Resolution") {print $2} }' | sed -z '0,/\n/ s/\n/: /'
    #sampleimg.jpg: 720 x 547
    
[/code]


CC BY-SA 4.0
2022-01-26T00:04:19.003
85934
2022-01-26T00:04:19.003
9820
85931
answer