2012-05-23 12 views

Odpowiedz

2

Spróbuj tego (wykonuje 5 powtórzeń "dowolnego" znaku na początku wiersza i zapisz go w pierwszej grupie, następnie wykonaj dowolną liczbę powtórzeń dowolnych znaków i zastąp dopasowany ciąg pierwszą grupą):

sed 's/^\(.\{5\}\).*/\1/' 

Albo alternatywa sugeruje mouviciel:

sed 's/^\(.....\).*/\1/' 

(to jest bardziej czytelny, tak długo, jak liczba pierwszych znaków, które mają nie rosną zbyt duże)

+1

'sed 's./^ \ (..... \) */\ 1 /'' jest o jeden znak krócej, łatwiej pisać i czytać. +1 i tak. – mouviciel

+0

Nie myślałem o tym, ale twoje prawo, dodaję to do odpowiedzi – Antoine

8

To może pracować dla Ciebie (GNU sed):

echo '1234567890' | sed 's/.//6g' 
12345 

czyli

echo '1234567890' | cut -c-5 
12345 
+0

+1 dla polecenia 'cut'. –

Powiązane problemy