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


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

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

5 ответов:

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

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

Если вы должны использовать sed:

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

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

cat file |colrm 101 

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

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

пример:

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

строго с sed:

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

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

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