Camel-casing una corda 'tratteggiata'


1

Sono abbastanza inesperto con * nix scripting, e ho bisogno di prendere una stringa con le parole minuscole separate da trattini e convertirla in una nuova stringa con i trattini rimossi, e la prima lettera dopo ogni trattino originale in maiuscolo. Ad esempio, voglio prendere

one-two-three-four-five

e convertirlo in

oneTwoThreeFourFive

La soluzione deve essere in grado di gestire più trattini (incluso nessuno) e può utilizzare altre utilità * nix se necessario come sed, awk, ecc.


Cosa intendi essere "includendo nessuno" - sarebbe solo la parola originale ... onetwo-tre sarebbe onetwoThree
Kinnectus

@BigChris Penso che OP significhi semplicemente che la soluzione proposta non può presumere che siano presenti dei trattini e che debba gestire con garbo quel caso.
a CVn

@ MichaelKjörling E dividi le parole per lui? Accidenti, passerò questo.
MariusMatutiae

@ MichaelKjling - È corretto. Se dovessi passare nella stringa 'baseball' la soluzione deve restituire quella intoccata ...
TheIcemanCometh

Risposte:


2

Perl al salvataggio:

echo one-two-three-four-five | perl -pe 's/-(.)/\u$1/g'

\u upcases il seguente carattere.


Funziona perfettamente. Testato su MacOS (El Capitan).
TheIcemanCometh

Anche testato su Debian Wheezy e funziona come un fascino.
a CVn
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.