Como posso alinhar dados em colunas bonitas em relação a determinada palavra?
Por exemplo, eu tenho saída do route -n
comando:
default via 172.20.99.254 dev eth0
87.33.17.71 dev tun0 scope link
89.223.15.12 via 172.20.99.254 dev eth0 src 172.20.99.74
172.20.9.0/24 dev eth0 proto kernel scope link src 172.20.99.74
65.46.5.89 dev tun0 scope link
192.168.11.0/24 dev tun0 scope link
45.211.111.7 dev tun0 scope link
e gostaria de alinhá-lo pela palavra dev
, para que a coluna que contém a palavra dev
fique alinhada:
default via 172.20.99.254 dev eth0
87.33.17.71 dev tun0 scope link
89.223.15.12 via 172.20.99.254 dev eth0 src 172.20.99.74
172.20.9.0/24 dev eth0 proto kernel scope link src 172.20.99.74
65.46.5.89 dev tun0 scope link
192.168.11.0/24 dev tun0 scope link
45.211.111.7 dev tun0 scope link
Não posso simplesmente substituir ingenuamente o caractere de espaço do punho por uma guia, porque às vezes preciso de 1 guia, outras vezes preciso de 3 guias.
Eu usaria um caractere que tenho certeza que não existe no arquivo, como um separador fictício para o
column
comando, como:Você também pode usar
-o
(especifique o separador de saída) junto comcolumn
, você pode tentar com-o ""
ou-o " "
para ver o comportamento.Além disso, o acima
sed
substitui apenas a primeira ocorrência, e uma correspondência simples foi usada, talvez você precise de uma correspondência mais estrita para outros casos, como a correspondência de espaços em branco ao redor.