2011-10-05 15 views
5

Sto cercando di rimuovere un gruppo di^K da un file in linux per la classe, ma tutto quello che ho provato non funziona.rimuovere caratteri speciali da un file in linux

linee in modo che il gatto un file memo.txt ed è doppio distanziati

ho meno il file e ha^K dopo ogni linea

Sto cercando di rimuovere il^K e l'uscita in un nuovo file

ho cercato

cat memo.txt | tr -d "\n" > memo.new 
cat memo.txt | tr -d "^K" > memo.new 

e alcune altre funzioni sed.

+3

Ogni personaggio è speciale a modo suo. –

risposta

5

si potrebbe desiderare di provare qualcosa di simile:

tr -d '\013' <memo.txt> memo.new 

013 è il valore ottale per il personaggio ^K.

+0

Grazie per la risposta e non solo per una pagina man. So che questo è per scuola, ma ci ho provato. – BillPull

+0

Puoi anche ottenere il valore premendo Ctrl + v seguito da Ctrl + K. Ctrl + v fa sì che l'input successivo dia il suo valore letterale invece di avere il suo normale effetto – Daenyth

+0

@Jonathan Callen, come hai trovato il valore ottale di^K? –

1

Dai un'occhiata alla:

man strings 

questo è IMHO esattamente quello che vuoi ...

+2

Senti la necessità di distruggere potenzialmente il contenuto solo per rimuovere completamente un singolo personaggio? –

0

Penso che la risposta di ABCD funzionerà. Ma se non funziona, provare quanto segue:

tr -d "`echo -e '\013'`" <memo.txt> memo.new 

Il comando echo integrato sarà in uscita il reale carattere^K, così tr saprà esattamente cosa eliminare.