如何删除Bash中的最后一个字符?

时间:2014-03-13 13:01:53

标签: bash unix scripting

我在删除最后一个字符时遇到问题。我有这个命令:

df -h | awk 'NR>1 {print$1,$2,$3,$4}'

产生:

directoryname1 40K 0 9.0G
directoryname2 90K 5.0M 78G
directorynamen 0 62M 70G

我发现我可以使用+0

删除字母(K,M,G)

这个命令:

df -h | awk 'NR>1 {print$3+0}'

的产率:

0
5.0
62

如何获得与没有K,M,G的第一个命令相同的结果?

2 个答案:

答案 0 :(得分:2)

你自己回答了自己的问题:

df -h | awk 'NR>1 {print$1,$2+0,$3+0,$4+0}' 

它起作用,因为字符串是数字的,对于非数字字符串:

df -h | awk 'NR>1 {print$1,substr($2,1,length($2)-1),
                           substr($3,1,length($3)-1),
                           substr($4,1,length($4)-1)}' 

答案 1 :(得分:1)

我和@AdrianFrühwirth - 你为什么要那样做?或者更确切地说,what are you trying to do?

如果您尝试使用相同的单元获取所有df个数字且输出中没有该单位,只需使用df而不使用{{1}获取字节的数量。如果您需要KiB,MiB,GiB或其他一些指标,您可以分别使用-h-BK-BM,或查看{{1}中的-BG格式信息}}

相关问题