2010-09-25 18 views

risposta

31
sed 's/^.....//' 

significa

replace ("s", sostituto) inizio-of-line poi 5 caratteri ("") con niente.

Ci sono modi più compatti o flessibili per scrivere questo usando sed o tagliare.

+0

Come lo faresti per l'ultimo carattere di una stringa? – blarg

+1

@blarg prova 'sed 's /.$//'' –

+0

più 1 per rispondere alla parte 'con sed' della domanda e poi menzionare che 'cut' è meglio –

10
sed 's/^.\{,5\}//' file.dat 
+3

BSD sed non accetta il limite * al massimo * ('{, 5}'), questo è specifico per GNU. Un'espressione che funziona su entrambi sarebbe 'sed 's/^. \ {5 \} //' file.dat' – Tristan

75

Uso cut:

cut -c6- 

Questa stampa ogni linea dell'ingresso partire dalla colonna 6 (la prima colonna è 1).

+0

Qui, il taglio ha una prestazione migliore di sed, ma ho avuto problemi se usato su caratteri codificati utf-8 . – PSchwede

Problemi correlati