使用 grep、sed 和类似的简单任务

jj_*_*j_p 1 grep sed disk-usage text-processing

输出的du -sh folder是一些维度和文件夹;我怎样才能使用grep -o '*G'和类似的方法来获取维度,即去掉文件夹名称?

alp*_*pha 7

我可以提供一个简单的cut解决方案:

du -sh . | cut -f1
Run Code Online (Sandbox Code Playgroud)

中的标准分隔符cut是制表符,因此不需要任何其他选项。只需打印字段 1。

从您的评论来看,您似乎很关心资源/速度,因此从另一个答案中引用 Gilles:

“一般来说,工具越专业,速度就越快。因此,在大多数情况下,您可以期望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
Run Code Online (Sandbox Code Playgroud)

我相信您需要多次重复,并取平均值以使其成为一个公平的测试,但无论哪种方式,都不多。从技术上讲,切割应该“更快”。