quale sarebbe il comando sed per eliminare tutti i caratteri in linea tranne i primi 5 iniziali, utilizzando sed? Ho provato ad andare 'indietro' su questo (cancellazione annullata) ma non è la soluzione più elegante.sed cancellare i caratteri rimanenti in linea tranne i primi 5
6
A
risposta
2
Prova questo (prende 5 ripetizioni di qualsiasi carattere all'inizio della riga e salva questo nel primo gruppo, quindi prende qualsiasi numero di ripetizione di qualsiasi carattere e sostituisce la stringa con il primo gruppo):
sed 's/^\(.\{5\}\).*/\1/'
Oppure l'alternativa suggerita da mouviciel:
sed 's/^\(.....\).*/\1/'
(è più leggibile fino a quando il numero di primi caratteri che si desidera non cresce troppo grande)
8
Questo potrebbe funzionare per voi (GNU SED):
echo '1234567890' | sed 's/.//6g'
12345
Oppure:
echo '1234567890' | cut -c-5
12345
+0
+1 per il comando 'cut'. –
'sed 's/^ \ (..... \) */\ 1 /'' è un personaggio più corto, più facile da scrivere e da leggere. +1 comunque. – mouviciel
Non ci ho pensato, ma hai ragione, aggiungo questo alla risposta – Antoine