Esta pergunta já tem uma resposta aqui:
TL; DR Eu preciso alinhar as colunas das entradas no fstab enquanto ignoro os comentários:
/dev/foo /foo ext4 defaults 0 2
# comment line 1
/dev/bar /bar ext4 defaults 0 2
# comment line 2
UUID=1234567890 /baz ext4 defaults 0 2
deve se tornar
/dev/foo /foo ext4 defaults 0 2
# comment line 1
/dev/bar /bar ext4 defaults 0 2
# comment line 2
UUID=1234567890 /baz ext4 defaults 0 2
em, idealmente, um comando swooping.
</tldr>
Meu fstab
consiste em um grande bloco de documentação nas linhas de comentário, terminando com as descrições dos campos e, finalmente, as entradas. Existem linhas de comentário intercaladas na seção de entrada.
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# table entries begin ...
Gostaria de alinhar colunas nas linhas de entrada usando o comando column -t
ou equivalente, mas quero ignorar os comentários. Se eu não ignorar as linhas de comentário, elas serão submetidas a alinhamento. Ao editar o arquivo no vim, posso selecionar visualmente as linhas da primeira entrada em diante e executar '<,'>
!grep '^[^\#]' | column -t
, mas o grep filtrará as linhas de comentário e, como resultado, elas não estarão presentes na saída, o que substitui a seleção no vim. Não consigo executar o comando column em cada linha correspondente individualmente porque column
não funciona dessa maneira.
Existe um comando simples que realiza essa tarefa? Não precisa ser realizável no vim, pois posso simplesmente delegá-lo a um comando externo de dentro.