的输出du -sh folder
是一些维度和文件夹;我如何使用grep -o '*G'
与获取维度类似的功能,即删除文件夹名称?
答案1
我可以提供一个简单的cut
解决方案:
du -sh . | cut -f1
标准分隔符cut
是制表符,因此不需要任何其他选项。只需打印字段 1。
从您的评论来看,您似乎关心资源/速度,因此引用吉尔斯的另一个答案:
“一般来说,工具越专业,速度就越快。因此,在大多数情况下,您可以期望
cut
和grep
比 更快sed
,并且sed
比 更快awk
。”
引自这里
time
这两个命令的输出显示:
time du -sh /folder | awk '{print $1}'
60K
real 0m0.005s
user 0m0.002s
sys 0m0.004s
time du -sh /folder | cut -f1
60k
real 0m0.003s
user 0m0.000s
sys 0m0.004s
我相信你需要重复多次,并取平均值才能使其成为一个公平的测试,但无论哪种方式,其中的内容都不多。从技术上来说削减应该是“更快”。
答案2
您可以使用 awk 仅打印第一列:
du -sh folder | awk '{print $1}'
对于文件,也使用 awk:
awk '!($3="")' file