我只有一个文本文件。这是一项多项选择的考试。其中有数百个问题,以ABCD开头,每个问题有四个答案选择,每行一个
每个A.(和B.等)之后应该是一个空格,然后是问题文本的第一个字符。像这样:
++++++++++++++++++++++++++++++++
This is my question text?
A. Choice 1
B. Choice 2
C. Choice 3
D. Choice 4
++++++++++++++++++++++++++++++++
我想找到所有以A.开头的行,这些行的答案选择的第一个字符前没有一个空格(一个不同的char OR,例如,两个或多个空格)。然后对BC和D执行相同的操作。
/编辑
我想区分“ OK”和“ not OK”行。
A.<space><any char not a space> is OK.
例如
A.ABC not OK.
A.123 not OK.
A. ABC not OK
A. 123 OK.
A. ABC OK.
我想找到所有“不正确”的行。
/编辑结束
grep -E '^[ABCD]\.([^ ]| )' file
从您的文件,开始用这将提取所有线路A.
,B.
,C.
或D.
后跟一个非空格字符或两个空格。
该表达式是扩展的正则表达式(由于与的替换|
),这就是为什么我们使用-E
with的原因grep
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句