Coloque em maiúscula a primeira letra após a primeira vírgula em todas as linhas da interface da linha de comandos do linux

2

Dado um arquivo com linhas semelhantes à seguinte.

Mike,mackenna,mike.mackenna,[email protected],yes,no,000
Joe,smith,joe.smith,[email protected],yes,no,123

Gostaria de alterar o arquivo para que as linhas sejam mostradas da seguinte maneira

Mike,Mackenna,mike.mackenna,[email protected],yes,no,000
Joe,Smith,joe.smith,[email protected],yes,no,123

Idealmente, gostaria de fazer a alteração no vim usando substituição e regex, mas também estou aberto a outras soluções possíveis.

mpmackenna
fonte

Respostas:

3

Este é um comando vim muito simples:

:%s/,./\U&

Os \Umeios convertem o seguinte em maiúsculas e os &meios todo o texto correspondente (o mesmo que \0)

Como não damos a /gbandeira, isso só será executado na primeira partida. Você também pode executar um comando normal:

:%norm f,lvU

É como digitar f,lvUtodas as linhas manualmente: f,encontre uma vírgula, lmova para a direita, vUconverta para maiúsculas.

Para fazer isso como um comando bash:

vim file.txt -c "%s/,./\U&" -c "wq"

ou

vim file.txt -c "%norm f,lvU" -c "wq"
DJMcMayhem
fonte