Используя sed, как вы печатаете первые символы "N" строки?

С sed, что является одним лайнером для печати первых n символов. Я делаю следующее.

grep -G 'defn -test.*' OctaneFullTest.clj  | sed ....

Ответ 1

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

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

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

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

Ответ 2

colrm x

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

cat file |colrm 101 

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

Ответ 3

не нужно использовать grep либо

пример:

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

Ответ 4

Строго с sed:

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

Ответ 5

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

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