2009-02-11 15 views

Respuesta

146

No utilice sed, use cut.

grep .... | cut -c 1-N 

Si tiene que usar SED:

grep ... | sed -e 's/^\(.\{12\}\).*/\1/' 
+0

realidad en un sistema Cygwin que estoy trabajando ahora 'corte' no lo corta mientras que 'sed' lo hace. – guaka

+0

O incluso 'sed -r 's/^ (. {12}). */\ 1 /''. – fedorqui

+1

@fedorqui '-r' aparentemente está disponible en Linux, pero no en Mac. –

4

estrictamente con SED:

grep ... | sed -e 's/^\(.\{N\}\).*$/\1/' 
6

no tienen que usar grep ya sea

un ejemplo:

sed -n '/searchwords/{s/^\(.\{12\}\).*/\1/g;p}' file 
34
colrm x 

Por ejemplo, si necesita los primeros 100 caracteres:

cat file |colrm 101 

ha sido alrededor durante años y es en la mayoría de Linux y BSD (FreeBSD seguro), por lo general de forma predeterminada. No recuerdo haber tenido que escribir apt-get install colrm.

+0

Esto no da los primeros 50n caracteres. Da los n caracteres para cada línea de texto – bsmoo

2

para imprimir la primera N caracteres puede eliminar los caracteres N + 1 hasta el final de la línea:

$ sed 's/.//5g' <<< "defn-test" 
defn 
Cuestiones relacionadas