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,mike.mackenna@123.com,yes,no,000
Joe,smith,joe.smith,joe.smith@123.com,yes,no,123

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

Mike,Mackenna,mike.mackenna,mike.mackenna@123.com,yes,no,000
Joe,Smith,joe.smith,joe.smith@123.com,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.

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"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.