grep 命令匹配所需的字符

grep 命令匹配所需的字符

我目前正在使用下面的命令来获取存储的总快照使用情况,但这只会显示Gnot in 中的值T

# isi_classic snapshot usage | tail -n 1 | egrep -o "[+-]?[0-9]+[.]?[0-9]([eE][+-])?[0-9]G"
621G

有没有办法在一个命令中同时匹配 G 和 T 并获得准确的输出?

# isi_classic snapshot usage
[snapid 1653, delete pending]                        0     n/a (R)    0.00% (T)
ifs_daily-s1-nov01_20            262G     n/a (R)    0.46% (T)
ifs_weeky-s1-nov01_20            176G     n/a (R)    0.31% (T)

                                               18T     n/a (R)   31.37% (T)

实际输出如下图

 isi_classic snapshot usage | tail -n 1
                                                  621G     n/a (R)    1.08% (T)

答案1

我认为这里不需要 grep,而是使用 awk,

isi_classic snapshot usage | tail -1 | awk '{print $1}'

但如果您坚持使用grep,请将最后一个更改G[GT]应该适合您:

isi_classic snapshot usage | tail -1 | egrep -o "[+-]?[0-9]+[.]?[0-9]([eE][+-])?[0-9][GT]"

相关内容