2009-02-11 20 views

risposta

146

Non utilizzare sed, utilizzare il taglio.

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

Se è necessario utilizzare sed:

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

In realtà su un sistema Cygwin su cui sto lavorando ora 'cut' non è tagliato mentre 'sed' fa. – guaka

+0

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

+1

@fedorqui '-r' è apparentemente disponibile su Linux, ma non su Mac. –

4

Rigorosamente con sed:

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

non è necessario utilizzare grep sia

un esempio:

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

Per esempio, se avete bisogno i primi 100 caratteri:

cat file |colrm 101 

E 'stato in giro per anni e si trova in più di Linux e BSD di (FreeBSD di sicuro), di solito per impostazione predefinita. Non ricordo di aver mai dovuto digitare apt-get install colrm.

+0

Questo non dà i primi 50n caratteri. Fornisce i n caratteri per ogni riga di testo – bsmoo

2

per stampare i primi N caratteri è possibile rimuovere i caratteri N + 1 fino alla fine della riga:

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