Whitespace
如何計算文本中的空格?
在以下範例中,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 個空格。
如果它有更多呢?數百,數千?
是否有捷徑可尋?
您可以使用
tr
刪除所有不是您感興趣的字元的內容,wc
以計算剩餘字元:ip address show eth0 | grep 'inet ' | tr -d -c ' ' | wc -m
這可以很好地擴展到大量文本,
tr
非常有效。但是請注意,對於
tr
包含 GNU的某些實現tr
,它僅適用於單字節字元(例如空格字元)。如果您只想計算前導空格,則需要比以下更強大的東西
tr
:ip address show eth0 | grep 'inet ' | sed 's/[^ ].*$//' | tr -d '\n' | wc -m
這將刪除每行中不是前導空格的每個部分,然後刪除換行符和計數。
請參閱如何計算每行中特定字元的數量?如果您對每行的計數感興趣。