Formattazione dell'output dei domini predefiniti su più righe


1

Solo una rapida domanda qui Sto provando a formattare l'output del comando:

defaults domains

in modo che metta ciascun dominio su una nuova riga, così posso usare quell'output analizzato in un comando diverso.

Ho provato:

defaults domains | sed 's/,/\n/g'

Quale dovrebbe prendere l'output di default, trovare ogni virgola e sostituire con una nuova riga corretta? Invece rimuove solo la virgola e mantiene ogni elemento sulla stessa riga.

Ho pensato, forse è qualcosa con la codifica dell'output del comando dafaults, quindi ho scaricato un file e ho provato a analizzarlo, ma niente da fare.

Qualcuno ha idea di come posso ottenere questo?

Risposte:


0

In OS X utilizzando il BSD predefinito sed puoi farlo in modi diversi, ecco un paio di modi.

defaults domains | sed 's/,/\
/g'

Premi Invio dopo aver digitato la barra rovesciata, non "n" e terminato con /g' nella riga successiva. Questo sostituisce una nuova riga letterale.

Questo funziona anche:

defaults domains | sed 's/,/\'$'\n/g'

Alcuni di noi installano la versione GNU di vari programmi da riga di comando come questo e il tuo originale defaults domains | sed 's/,/\n/g' funzionerebbe perfettamente con GNU sed.

Ciò detto, devo dire che da allora tr potrebbe fare ciò che ti serviva / volevo così facilmente era la strada da percorrere


Sì, ho visto che nelle varianti di BSD hai effettivamente inserito una nuova riga invece dell'indicatore di ritorno a capo, ma non sono riuscito a provarlo prima di iniziare a lavorare.
Chris Gleason

1

Non importa. Non so perché sed non ha funzionato come volevo, ma ho usato solo:

tr ',' '\n'

e ha funzionato bene.


tr funzionerà più volte più velocemente rispetto all'utilizzo sed, Se tr può fare il compito. Anche concatenando tr con sed funzionerà più velocemente del semplice utilizzo sed.
fd0

LOL! Non ho mai ricevuto un negativo prima. Ho pensato che sarebbe stato prudente rispondere alla mia domanda, ma forse no?
Chris Gleason

Credo che tu sia stato votato perché non hai modificato il tuo post originale con la tua soluzione.
fd0

@ fd0, Non è una scusa per il down-voting ed è perfettamente corretto per l'autore dell'OP postare una risposta alla propria domanda, anche se la soluzione è diversa da ciò che veniva chiesto. In ogni caso, ho votato la domanda perché è una risposta valida anche se il mio ha affrontato il problema sed problemi riscontrati nel PO. Vedere: Posso rispondere alla mia domanda?
user3439894

@ user3439894 Non ho votato contro Chris. Non apprezzo la tua ipotesi,
fd0
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.