使用sed,如何打印一行的第一个“N”字符?

用sed,打印前n个字符的单行是什么。 我正在做以下。

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

不要使用sed,使用cut。

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

如果你必须使用sed:

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

例如,如果您需要前100个字符:

 cat file |colrm 101 

这已经有好几年了,大部分是linux和bsd(肯定是freebsd),通常是默认的。 我不记得曾经inputapt-get install colrm

也不必使用grep

一个例子:

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

严格使用sed:

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

要打印N个第一个字符,可以删除N + 1个字符直到行尾:

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