【发布时间】:2010-10-07 00:33:14
【问题描述】:
使用sed 什么是单行来打印前n 个字符?我正在执行以下操作:
grep -G 'defn -test.*' OctaneFullTest.clj | sed ....
【问题讨论】:
使用sed 什么是单行来打印前n 个字符?我正在执行以下操作:
grep -G 'defn -test.*' OctaneFullTest.clj | sed ....
【问题讨论】:
不要使用sed,使用cut:
grep .... | cut -c 1-N
如果您必须使用sed:
grep ... | sed -e 's/^\(.\{12\}\).*/\1/'
【讨论】:
cut 不会削减它,而 sed 会。
sed -r 's/^(.{12}).*/\1/'。
-r 显然在 Linux 上可用,但在 Mac 上不可用。
cut -c 1-N(其中 N 是数字)是否适用于我的 Cygwin 安装(cygwin v. 2.6,cut v. 8.25)在 OS X 上,使用 @ 987654331@而不是sed -r,在别处使用。
严格使用 sed:
grep ... | sed -e 's/^\(.\{N\}\).*$/\1/'
【讨论】:
也不必使用 grep
一个例子:
sed -n '/searchwords/{s/^\(.\{12\}\).*/\1/g;p}' file
【讨论】:
colrm x
例如,如果您需要前 100 个字符:
cat file |colrm 101
它已经存在多年并且在大多数 linux 和 bsd 中(当然是 freebsd),通常是默认的。我不记得曾经输入过apt-get install colrm。
【讨论】:
colrm 理解utf8。
要打印前 N 个字符,您可以删除直到行尾的 N+1 个字符:
$ sed 's/.//5g' <<< "defn-test"
defn
【讨论】:
头怎么样?
echo alonglineoftext | head -c 9
【讨论】: