将输出分成新行

将输出分成新行

我创建了一个脚本./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变量获取您的搜索结果。然后将语句分成两个制表符分隔的部分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

相关内容