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.