我需要帮助,使用sed或awk将文本添加到一行文本中的几个地方。 这是我写到test.txt的df命令的输出
fsu:/dev/sda3 34407336 3348680 29282672 11% / fsu:/dev/sda1 124427 11578 106425 10% /boot fsu:tmpfs 4086720 0 4086720 0% /dev/shm fsu:/dev/sdb1 20635732 725376 18862116 4% /cmdb fsu:/dev/sdc 51606140 2531372 46453328 6% /data
我想使test.txt看起来像这样:
fsu:/dev/sda3 T: 34407336 U: 3348680 A: 29282672 P: 11% M: / fsu:/dev/sda1 T: 124427 U: 11578 A: 106425 P: 10% M: /boot fsu:tmpfs T: 4086720 U: 0 A: 4086720 P: 0% M: /dev/shm fsu:/dev/sdb1 T: 20635732 U: 725376 A: 18862116 P: 4% M: /cmdb fsu:/dev/sdc T: 51606140 U: 2531372 A:46453328 P: 6% M: /data
我无法弄清楚如何在数字前添加字母和冒号。
使用awk
:
awk '{print $1, "T:", $2, "U:", $3, "A:", $4, "P:", $5, "M:", $6}' file
输出:
fsu:/dev/sda3 T: 34407336 U: 3348680 A: 29282672 P: 11% M: / fsu:/dev/sda1 T: 124427 U: 11578 A: 106425 P: 10% M: /boot fsu:tmpfs T: 4086720 U: 0 A: 4086720 P: 0% M: /dev/shm fsu:/dev/sdb1 T: 20635732 U: 725376 A: 18862116 P: 4% M: /cmdb fsu:/dev/sdc T: 51606140 U: 2531372 A: 46453328 P: 6% M: /data
如果你想列很好地对齐,通过column -t
管。
这听起来像是一个awk
的工作:
awk '{ printf "%s T: %s U: %s A: %s P: %s M: %s\n", $1, $2, $3, $4, $5, $6 }' file
结果:
fsu:/dev/sda3 T: 34407336 U: 3348680 A: 29282672 P: 11% M: / fsu:/dev/sda1 T: 124427 U: 11578 A: 106425 P: 10% M: /boot fsu:tmpfs T: 4086720 U: 0 A: 4086720 P: 0% M: /dev/shm fsu:/dev/sdb1 T: 20635732 U: 725376 A: 18862116 P: 4% M: /cmdb fsu:/dev/sdc T: 51606140 U: 2531372 A: 46453328 P: 6% M: /data