我是 Linux 新手,我想从此输出中获取“DRIVE GB”:
[randall@home gdrive]$ drive quota
Name: Randall D
Account type: UNLIMITED
Bytes Used: 290959662516 (270.98GB)
Bytes Free: 10995116277760 (10.00TB)
Bytes InTrash: 0 (0.00B)
Total Bytes: 11286075940276 (10.26TB)
* Space used by Google Services *
Service Bytes
DRIVE 270.98GB
PHOTOS 0.00B
GMAIL 0.00B
Space used by all Google Apps 270.98GB
我想从 DRIVE 270.98GB 获取“270.38”。我尝试使用 sed 阅读这里的一些帖子,但无法得到它。
答案1
drive quota | sed -n 's/^DRIVE[[:blank:]]\{1,\}\([0-9.]\{1,\}\).*/\1/p'
将提取 1 个或多个十进制数字的序列,或者在行开头.
跟随 1 个或多个空格的序列。DRIVE
如果您sed
支持该-E
选项,那么它会更漂亮:
drive quota | sed -En 's/^DRIVE[[:blank:]]+([0-9.]+).*/\1/p'
尽管如此,你也可以使用perl
:
drive quota | perl -lne 'print $1 if /^DRIVE\h+([\d.]+)/'
使用 GNU 时grep
,当使用(最近的\K
)PCRE 支持构建时:
drive quota | grep -Po '^DRIVE\h+\K[\d.]+'
使用awk
,您还可以执行以下操作:
drive quota | awk '$1 == "DRIVE" {print 0+$2}'