2013-03-14 21 views

risposta

10

per riprodurre "^ A" è sufficiente premere Ctrl-V Ctrl-a ciò riprodurre il^A nel file

sed -i -e 's/^A/BLAH/g' testfile 

il ^A in quella linea è il risultato di me premendo Ctrl-v Ctrl- un

+1

Vorrei raccomandare contro questo modo, perché non sarà in grado di copiare facilmente e incollarlo, messo in uno script, modificare lo script con qualsiasi editor e così via. – Tobia

+0

@Tobia È possibile eseguire ctrl-v ctrl-a in vi e salvare il file con il corretto^A in là. Copia e incolla con il buffer di incolla della GUI è l'unica cosa che non puoi fare. – Eric

9

^a è byte 1 o \x01 così si dovrebbe essere in grado di fare questo:

sed 's/\x01//g' 

Tenete a mente che per le modifiche a byte singolo, "tr" è più veloce di sed, anche se dovrete usare la sintassi $'..' di bash per dargli un byte 0x01:

tr -d $'\x01' 
+0

Puoi digitare un letterale in una stringa tra virgolette in Bash anteponendolo a C-v: 'tr -d 'C-vC-a'', dove premi letteralmente control-v e control-a. –

+0

Questo funziona per me con tr ma non SED. – DJElbow

+0

Prova a usare il '$ ''' anche in sed: 'sed $ '/ \ x01 // g'' – Tobia

Problemi correlati