我要使用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
答案 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"