こんにちは、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"}'