我有一个 Bash 脚本,内容如下:
我希望将输出作为一个字符串,用空格分隔。就像这样。
while read line
do
echo $line | while read a b c d e f g
do
if [ $e != "0" ]; then
echo -en "|'$a'=;$g;$f;;"
fi
done
done < /tmp/res6
这段文本指的是哪只猫
mem_total_app_1 5034876928 + 384000 = 5035260928 mysqld
mem_total_app_2 2994008064 + 108532736 = 3102540800 /usr/sbin/amavi(91)
mem_total_app_3 648744960 + 103424 = 648848384 redis-server
mem_total_app_4 541454336 + 58354688 = 599809024 php-fpm7.2(26)
并输出到这里
|'mem_total_app_1'=;mysqld;5035260928;;
|'mem_total_app_2'=;/usr/sbin/amavi(91);3102540800;;
|'mem_total_app_3'=;redis-server;648848384;;
|'mem_total_app_4'=;php-fpm7.2(26);599809024;;
我希望将输出作为一个字符串,用空格分隔。就像这样。
|'mem_total_app_1'=;mysqld;5035260928;; 'mem_total_app_2'=;amavi(91);3102540800;; 'mem_total_app_3'=;redis-server;648848384;; 'mem_total_app_4'=;php-fpm7.2(26);599809024;;
请问有人能提示我一下吗?
while
循环是不必要的。因为你没有对line
进行任何操作,所以你可以简单地让外层的read
将输入分割成a b c
等等。这也顺便修复了缺少引号的问题(应该是echo "$line"
)。 - undefined