2

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

数字の前に文字とコロンを追加する方法がわかりません。

4

2 に答える 2

5

使用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列をうまく整列させたい場合は、パイプスルーします。

于 2012-12-01T22:49:04.333 に答える
3

これは の仕事のように思え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
于 2012-12-01T22:49:12.173 に答える