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