grep

grep

/proc/net/devスペースで区切られた2番目の列と10番目の列の内容を抽出する必要があります。つまり、受信および送信されたバイト数です。

grep逆参照を使用してこれを実行できますか?

ベストアンサー1

あなたの質問に答えてください:

awk '{print $2,$10}' /proc/net/dev

生産する

Receive
|bytes packets
6385384218 42314607745
12034420041 12034420041

これはあなたが望むものではないかもしれません。

あなたはそれを使用することができます

awk '$1 ~ /:/ {print $2,$10}' dev
6385389751 42314610935
12034420241 12034420241

どこ

  • $1 ~ /:/最初のフィールドがfooの行を選択します。
  • {print $2,$10}2番目と10番目のフィールドの印刷

grep

  1. grep を使用すると、正規表現に一致する数値を選択できます。/proc/dev/net
  2. しかし、正規表現は説明はしますが、実行することはできません。

つまり、次に適用される正規表現は表示されません。単一のgrepコマンドそれから送信されます

  eth0: 6385654376 26986310    0 107680    0     0          0      4665 42314947519 21475282    0    0    0     0       0          0
    lo: 12034424441 4553238    0    0    0     0          0         0 12034424441 4553238    0    0    0     0       0          0

(不正確な数字)

6385389751 42314610935
12034420241 12034420241

使用grep FOO

これにはFOOgrepのオプションとパラメータのみが含まれています。

@Emericの試みで私のOSで実行すると、2つの列がある可能性があります。

6385672702
42314983073
12034425441
12034425441

しかし、幸運を試してみることができます。https://codegolf.stackexchange.com/

おすすめ記事