Sto cercando di prendere una riga di testo comeSfuggire il carattere '' nella stringa di sostituzione in un'espressione sed
13) Check for orphaned Path entries
e modificarlo (voglio i codici colore bash per colorare l'uscita, non visualizzato sullo schermo)
\033[32m*\033[0m Check for orphaned Path entries
con codici colore bash per colorare l'asterisco per farlo risaltare di più. Ho un comando sed che fa la maggior parte di questo, tranne che non gestisce correttamente i codici colore poiché li vede come riferimenti al testo sostitutivo.
Quello che ho finora:
sed "s/ *13) \(.*\)/ \033[32m*\033[0m \1/"
che produce il seguente output quando viene eseguito sulla corda ho dato all'inizio:
13) Check for orphaned Path entries33[32m* 13) Check for orphaned Path entries33[0m Check for orphaned Path entries
Si sta prendendo il \ 0 del \ 033 e sostituendolo con la stringa originale. Raddoppiare i backslash nella stringa di sostituzione non fa differenza; Ho ancora lo stesso testo di output.
Come si inseriscono i colori di bash in un'espressione di sostituzione sed?
quadruplicando la backslash provocato lo stesso effetto usando le virgolette singole e bashslashes raddoppiato, come suggerito da @DreadPirateShawn. Ottengo \ 033 [32m * \ 033 [0m output direttamente sulla console, senza essere trasformato in codici colore. –
Fondamentalmente è la stessa cosa. Ecco perché ho già eliminato il mio commento. – balpha