使用bash,我要在一行上打印一个数字,然后打印2条路径的大小。即在一行上输出3个命令

时间:2018-09-29 00:50:05

标签: linux bash

我要使用bash在一行上打印一个数字,然后打印2个路径的大小。即在一行上输出3条命令。

所有3个项目均应以“:”分隔

echo -n "10001:"; du -sch /abc/def/* | grep 'total' | awk '{ print $1 }'; du -sch /ghi/jkl/* | grep 'total' | awk '{ print $1 }'

我得到的输出为-

10001:61M

:101M

但是我希望输出为-

10001:61M:101M

2 个答案:

答案 0 :(得分:1)

这应该为您工作。添加的两个关键要素是  tr-d'\ n' 有效地从输出末尾去除换行符。以及在回显中添加“:”以获取多余的冒号,以便在那里进行格式化。

希望这会有所帮助!这是tr命令文档的链接。 https://ss64.com/bash/tr.html

echo -n "10001:"; du -sch /abc/def/* | grep 'total' | awk '{ print $1 }' | tr -d '\n'; echo ":" | tr -d '\n'; du -sch /ghi/jkl/* | grep 'total' | awk '{ print $1 }'

答案 1 :(得分:0)

将您的值保存到变量中,然后使用printf

printf '%s:%s:%s\n' "$first" "$second" "$third"