我想用grep命令打印,只用C中包含某些.txt文件的变量有效名称。
我的结果是:
it1238@snf-622:~/templab$ grep '^[[:alpha:]]\([[:alpha:]]|_|[[:digit:]]\)\{0,31\}' textfile.txt
Feb 12, 1999
abc
alpha_beta
x
aQ
AS_xyz_XgZ
Jan 23, 2001
我无法理解为什么结果会显示带有空格的行,例如1月23日和2月12日。
操作系统:Ubuntu 12.04.5 LTS grep版本:grep(GNU grep)2.10非常感谢。
答案 0 :(得分:3)
您需要在BRE中转义|
并使用锚$
结束输入模式,以确保匹配整行:
grep '^[[:alpha:]]\([[:alpha:]]\|_\|[[:digit:]]\)\{0,31\}$' file
abc
alpha_beta
x
aQ
AS_xyz_XgZ
但我建议使用urlMappings并将您的模式缩减为:
grep '^[[:alpha:]][[:alnum:]_]\{0,31\}$' file
abc
alpha_beta
x
aQ
AS_xyz_XgZ