使用sed,打印前n个字符的单行内容是什么。我正在做以下事情。
grep -G 'defn -test.*' OctaneFullTest.clj | sed ....
答案 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