Bash alias con Sed non funziona


3

Qualcuno sa perché questo alias non funziona?

alias tailsed="tailf error.log | sed -e 's/\\n/\n/g' -e 's/\\t/''/g'"

Ho provato a sostituire le virgolette singole con doppie in modo che sia come:

alias tailsed='tailf error.log | sed -e "s/\\n/\n/g" -e "s/\\t/""/g"'

Ma il comando pipe non si analizza correttamente come fa quando viene eseguito da solo.


a) dovresti usare le virgolette singole intorno alla sed, come nel tuo primo esempio, e come per la doppia citazione, e se lo fai \ "? b) è una specie di imbroglio e troppo facile per essere interessante ma potresti fare qualcosa di simile \ d22
barlop

Risposte:


4

Le funzioni rimuovono tutto questo citare l'inferno:

tailsed() { tailf error.log | sed -e 's/\\n/\n/g' -e 's/\\t//g'; }

Ah, non sapevo che potresti aggiungere funzioni all'interno del file bash_aliases. Funziona alla grande, grazie!
Ken

Gli script di avvio di bash sono solo script di bash, puoi mettere tutto lì.
glenn jackman
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.