我创建了一个脚本./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