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

时间:2009-02-11 20:40:24

标签: sed grep

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

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

6 个答案:

答案 0 :(得分:175)

不要使用sed,请使用cut。

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

如果你必须使用sed:

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

答案 1 :(得分:39)

colrm x

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

cat file |colrm 101 

它已经存在多年了,并且在大多数linux和bsd(肯定是freebsd)中,通常是默认情况下。我不记得曾经输入apt-get install colrm

答案 2 :(得分:6)

不必使用grep

一个例子:

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

答案 3 :(得分:4)

严格使用sed:

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

答案 4 :(得分:4)

怎么样?

echo alonglineoftext | head -c 9

答案 5 :(得分:3)

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

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