sed を使用した結果の分析

sed を使用した結果の分析

こんにちは、duコマンドの結果を解析しようとしていますが、ループなしで実行する方法がわかりません。次のコマンドを実行します。

du -shm /var/vmail/mailboxes/domain/*/mail

私の結果は次のリストです。

80 /var/vmail/mailboxes/domain/USER1/mail 
150 /var/vmail/mailboxes/domain/USER2/mail 
220 /var/vmail/mailboxes/domain/USER3/mail 

上記のリストを次のようにjsonオブジェクトに変換したいと思います。

{USER1: 80, USER2:150, USER3:220 }

または、少なくとも何かを持っている必要があります:

80 USER1
150 USER2
220 USER3

私はこれを試しましたが、sed -e成功しませんでした。どんなアイデアがありますか?

ベストアンサー1

努力する

du -sm /var/vmail/mailboxes/domain/*/mail |
  sed 's:/var/vmail/mailboxes/domain/::; s:/mail::'

どこ

  • s:/mail::/mail何も変わらない

JSONに移動

du -sm /var/vmail/mailboxes/domain/*/mail |
  sed 's:/var/vmail/mailboxes/domain/::; s:/mail::' |
  awk 'BEGIN { sep="{" ;} { printf "%s \"%s\":%s",sep,$2,$1; sep="," } END { printf "}\n"}'

おすすめ記事