テキストのスペースを計算する方法は?

テキストのスペースを計算する方法は?

次の例では、inetの前に4つのスペースがあります。

wolf@linux:~$ ip address show eth0 | grep 'inet '
    inet 10.10.10.10/24 brd 10.10.10.255 scope global dynamic eth0
wolf@linux:~$ 

この例のように、スペースの数をどのように計算できますか?

例はスペースが4つだけなので簡単です。

何かがあればどうでしょうか?何百、何千?

見つけることができるショートカットがありますか?

ベストアンサー1

tr使用したい文字以外のすべての項目を削除できますwc

ip address show eth0 | grep 'inet ' | tr -d -c ' ' | wc -m

これは大量のテキストに合わせて拡張され、tr非常に効率的です。

ただし、trGNUを含む一部の実装では、trシングルバイト文字(スペース文字など)のみを使用できます。

先行スペースのみを計算するには、以下より強力なものが必要ですtr

ip address show eth0 | grep 'inet ' | sed 's/[^ ].*$//' | tr -d '\n' | wc -m

これにより、先行スペースを含まない各行のすべての部分が削除され、改行文字と数が削除されます。

バラより各行の特定の文字数を計算する方法は?1行あたりの数に興味がある場合

おすすめ記事