私は以下の文字列をdfコマンドの出力に持っています。私は値存在する複数の整数から1つの整数値を抽出する方法
Javaの正規表現を使用して8946732
を抽出したい
$ df |grep data
/dev/block/dm-1 11066964 2103848 8946732 20% /data
、私は
(.*?\s{3}\d+.\d+)
を試してみましたが、それは正常に動作していません。
私は以下の文字列をdfコマンドの出力に持っています。私は値存在する複数の整数から1つの整数値を抽出する方法
Javaの正規表現を使用して8946732
を抽出したい
$ df |grep data
/dev/block/dm-1 11066964 2103848 8946732 20% /data
、私は
(.*?\s{3}\d+.\d+)
を試してみましたが、それは正常に動作していません。
あなたの予想出力は固定インデックスに常にある場合は、あなたがこれを使用することができます。
>>> s = "/dev/block/dm-1 11066964 2103848 8946732 20% /data"
>>> s.split()[3]
'8946732'
OK、正規表現を使用して要求されたとして、ここではそれはあなたがdf
を求めることができ
>>> import re
>>> re.search(r'(?is)(.*?\s+\d+\s+\d+\s+)(\d+)',s).group(2)
'8946732'
正規表現を使用する必要があります –
ここでは答えを編集しましたが、正規表現を使用しないことを強くお勧めします –
あるように--output
オプションを使用して特定の列を印刷する:
df --output=avail /dev/block/dm-1 | tail -n1
tail
コマンドは、ヘッダAvail
を取り除くためのものです。
このコマンドはAndroid用ではありません –
以下のように正規表現を使用して、それが2桁で非スペースのフォローと一致し、次の数字をキャプチャ
import re
re.match('\S+\s+(?:\d+\s+){2}(\d+)', "/dev/block/dm-1 11066964 2103848 8946732 20% /data").group(1)
# '8946372'
は* Javaの正規表現を使用して* demo
を参照していますが、スペース上のPythonのタグ –
スプリットを持っているとキープ第4要素 – Toto
@MosesKoledoye参考文献としてPython正規表現を使用することができます –