我在捕捉每一行的前6个字符时遇到了麻烦。假设我在text.txt中有以下几行:
this is a sentence
1234567890
string
我想获得前10个字符:
this i
123456
string
我尝试过grep -Eo "^[a-zA-Z0-9]*{6}" text.txt
但grep会在每第6个位置回收正则表达式,而不是从下一个新行开始。它最终回来了:
this i
s a se
ntence
123456
7890..
我在这里做错了什么?
答案 0 :(得分:4)
为什么要使用grep
,您可以使用简单的cut
命令:
cut -c1-6 file
或者这个更复杂的sed也可以起作用:
sed 's/^\(.\{6\}\).*$/\1/' file
答案 1 :(得分:1)
使用以下命令:
grep -Eo "^.{6}" text.txt
上面的命令省略了< 6个字符的行。要包含此类行,请使用以下命令:
grep -Eo "^.{1,6}" text.txt
答案 2 :(得分:0)
如果您想使用grep
,请尝试
grep -Po "^.{6}" text.txt
答案 3 :(得分:0)
不需要正则表达式:
$ pr -mtw6 file
this i
123456
string