2009-02-11 3 views

ответ

146

Не используйте sed, используйте разрез.

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

Если вы ДОЛЖНЫ использовать СЕПГ:

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

На самом деле в системе Cygwin я работаю сейчас 'cut' не резать в то время как 'sed'. – guaka

+0

Или даже 'sed -r 's/^ (. {12}). */\ 1 /''. – fedorqui

+1

@fedorqui '-r', по-видимому, доступен в Linux, но не на Mac. –

4

Строго с СЕПГ:

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

не должны использовать Grep либо

пример:

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

Например, если вам нужны первые 100 символов:

cat file |colrm 101 

Это было вокруг в течение многих лет и в большинстве Линуксом и из BSD (FreeBSD точно), как правило, по умолчанию. Я не помню, чтобы когда-либо приходилось вводить apt-get install colrm.

+0

Это не дает первые 50n символов. Он дает n символов для каждой строки текста – bsmoo

2

Для печати N первых символов вы можете удалить символы N + 1 до конца строки:

$ sed 's/.//5g' <<< "defn-test" 
defn 
Смежные вопросы