出力を保存して再印刷し、出力を新しい行に分割する方法

出力を保存して再印刷し、出力を新しい行に分割する方法

出力を変数に保存し、次のように表示したいと思います。

私のコード:

#!/bin/bash
dir=$1

printf "file size: %s\n" \ 
               du "$dir" -hab | sort -n -r |tail -n 2

この出力を変数に保存し、目的の出力に再印刷したいと思います。

私が望む出力:

$ ./filestats test
 minimum file size: 15 
    test/subdir/file3.txt
    test/file5.txt

ベストアンサー1

1つの方法は次のとおりです。

#!/bin/bash
dir=$1

minfile=$( du "$dir" -hab | sort -n -r | tail -1 | awk '{ print $1 }' )
out=$( du "$dir" -hab | sort -n -r | tail -n 2 | awk '{ print $2 }' )

printf "Minimum file size: %s\n" "$minfile"  
printf "$out\n"

上記のコードの出力例:

Minimum file size: 94
/home/krt/my-scripts/multissh.sh
/home/krt/my-scripts/vpn.sh

おすすめ記事