Mi piacerebbe utilizzare sed per rimuovere le schede da linee altrimenti vuote. Ad esempio una riga contenente solo \t\n
dovrebbe passare a \n
. Qual è la sintassi per questo?Come rimuovere le schede dalle righe vuote usando sed?
risposta
sed
non sa di sequenze di escape come \t
. Quindi, si dovrà digitare letteralmente tab
sulla console:
sed 's/^ *$//g' <filename>
Se siete su bash, allora non è possibile digitare tab
sulla console. Dovrai fare ^V
e quindi premere tab
. (Ctrl-V
e quindi tab
) per stampare una scheda letterale.
L'altra soluzione pubblicata funzionerà quando è presente la scheda 1 (e solo 1) nella riga. Nota che Raze2dust fa notare che sed richiede di digitare una scheda letterale. Un'alternativa è:
sed '/[^ ]/!s/ //g' file-name.txt
Quale sostituisce le schede da linee che hanno solo schede. La classe invertita combacia con le righe che contengono un bug di qualsiasi tipo: il seguente '!' fa sì che non corrisponda a quelle linee - cioè solo le linee che hanno solo schede. La sostituzione quindi funziona solo su quelle linee, rimuovendo tutte le schede.
Per sostituire le linee di spaziatura arbitrari con una riga vuota, utilizzare
sed -r 's/^\s+$//'
Il flag -r dice di usare le espressioni regolari estese, e il^\ s + $ modello corrisponde tutte le linee con un po 'di spazio bianco, ma nessun altro carattere .
grep -o ".*" file > a; mv a file;
E questo fa esattamente? Perché non fa quello che l'OP chiedeva. –
non sicuro se trolling, ma se così, brillante .... – ansiart
Ho notato che \ t non è riconosciuto da UNIX. Detto questo, usa la chiave attuale. Nel codice sottostante, TAB rappresenta premendo il tasto tab.
$ sed 's/TAB // g' vecchiofile> nuovofile
punta amichevole: per assicurarsi di avere le schede nel file che si sta tentando di rimuovere le schede da utilizzare il seguente codice per vedere se \ t appare
$ od -c nomefile
- 1. Rimuovere le righe vuote lasciate dalle definizioni delle variabili Jinja2
- 2. AWK rimuovere le righe vuote
- 3. Come usare sed per rimuovere solo le doppie linee vuote?
- 4. Come usare sed per rimuovere solo le triple linee vuote?
- 5. Come rimuovere le righe vuote in SSMS?
- 6. Come rimuovere le righe vuote dall'output wmic?
- 7. Come rimuovere l'ombra dalle schede JavaFX?
- 8. Rimuovere le directory vuote usando msbuild
- 9. Rimuovere tutte le righe prima di una partita con sed
- 10. Rimuovere tutti gli spazi vuoti e le righe vuote
- 11. rimuovere le righe vuote da file di testo con PowerShell
- 12. Rimuovere le righe vuote di lunghezza zero nell'elenco con R
- 13. Come rimuovere le distorsioni radiali dalle immagini usando OpenCV?
- 14. Come rimuovere il pulsante di chiusura dalle schede in javafx
- 15. Ruby rimuove le righe vuote dalla stringa
- 16. Come rimuovere le risorse inutilizzate dalle librerie?
- 17. Rimuovere righe vuote da txtfiles, rimuovere gli spazi dall'inizio e alla fine della linea di
- 18. Rimuovere le interruzioni linea singola, mantenere le linee "vuote"
- 19. Come posso rimuovere le barre dalle stringhe?
- 20. Come rimuovo le righe vuote dal testo in PHP?
- 21. Come contare il numero di linee non vuote in un file usando sed?
- 22. Rimuovere l'editor di eclissi di righe vuote indesiderate
- 23. Come rimuovere i caratteri CTRL-A dai file usando SED?
- 24. Elimina righe vuote da un file
- 25. Leggi righe vuote C++
- 26. come posso rimuovere le directory vuote in git-svn?
- 27. Elimina righe vuote
- 28. JavaScript: come utilizzare un'espressione regolare per rimuovere righe vuote da una stringa?
- 29. Come rimuovere le righe duplicate dall'istruzione unione
- 30. Come inserire righe vuote in PDF?
Se si utilizza bash, si potrebbe anche fare 'sed $ 's/^ \ t * $ // g'', perché l'utilizzo di un segno di dollaro su una stringa con una singola quotazione sfugge codici come \ t. –
bravo uno Max! Non lo sapevo. Dovresti metterlo come risposta separata .. –
Il tuo è abbastanza vicino. :) –