私はスクリプトを作成しました./abc
。
出力を新しい行に分割したい。
私のコード:
#!/bin/bash
dir="$1"
echo -n "size of file:"
du -hba $dir | sort -n -r | tail -1
私の結果は次のとおりです
size of files: 20kb /path/to/sport
私が望む出力は次のとおりです。
size of files: 20kb
/path/to/sport
答え1
私は次のことを考えます:
du="$(du -hba "$dir" | sort -n -r | tail -1)"
printf "size of file: %s\n\t%s\n" "${du/$'\t'*}" "${du#*$'\t'}"
このdu
変数は検索結果を取得します。その後、ステートメントはタブで区切られた2つの部分に分割され、printf
各部分はを使用してフォーマット文字列に挿入されます%s
。
この構造は、改行、タブ、その他の珍しい文字を含むファイル名を処理する必要があります。
答え2
./abc | sed 's/files: /files: \n/'
私のシステムで次のコマンドを試しましたecho
。
$ echo "size of files: 20kb /path/to/sport" | sed 's/files: /files: \n\t/'
size of files:
20kb /path/to/sport