我的代码:
df -h | sed 's/G/Gb/' >> $2
输出:
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 29Gb 5.5G 22G 21% /
devtmpfs 757M 196K 757M 1% /dev
tmpfs 757M 436K 757M 1% /dev/shm
我需要的输出:
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 29Gb 5.5Gb 22Gb 21% /
devtmpfs 757M 196K 757M 1% /dev
tmpfs 757M 436K 757M 1% /dev/shm
添加全局标志
df -h | sed 's/G/Gb/g' >> $2
原始代码会更改模式的第一个匹配项。在结尾"/"后添加一个"g"(全局)使其全局化-更改所有匹配的实例。但这可能会产生意想不到的后果,例如,如果任何一个卷名包含"g",也会更改。
这将把M转换为Mb,把K转换为Kb:
df -lh | perl -pe 's/([0-9])(G)( )/1Gb3/g; s/([0-9])(M)( )/1Mb3/g; s/([0-9])(K)( )/1Kb3/g'