出力行を複数行(ファイルではなく行のみ)に分割する方法は? [コピー]

出力行を複数行(ファイルではなく行のみ)に分割する方法は? [コピー]

私の要件は、出力行を複数行で表示することです

私のコードは次のとおりです

#!/bin/bash
dir="$1"

echo -n "file size:"
du="$(du $dir -hab | sort -n -r | tail -1)"
printf "%s\n" "echo "$du""

出力は次のように表示されます。

     file size:echo 0
./.config/enchant/en_US.dic 

私の予想結果は次のとおりです。

file size: 0
./.config/enchant/en_US.dic 

上記のように表示する必要があります。パスは、タブスペースを含む新しい行から始める必要があります。

ベストアンサー1

以下では、heredocを使用してパイプの出力を分割し、シェルの組み込みprintfを使用してテキスト形式を指定します。

read -r a b <<EOF
$(du -hab "$dir" | sort -nr| tail -n 1)
EOF
printf "file size: %s\n%s\n" "$a" "$b"

おすすめ記事