我有test.txt
个文件,其中包含以下行:
Period 1
Period 2
Period 3
........
.
.
.
Period 10
Period 11
Period 12
.
.
.
同样,我在test.txt
文件中有18行。
现在我需要从这个test.txt
创建新文件,这样当我给出'Period 1'时,它应该只在新文件中显示“Period 1”行。
我在这里遇到问题:当我尝试grep "Period 1" > newfile.txt
时,它会给出所有以“期间1”,“期间10”,“期间11”等开头的期间。 / p>
答案 0 :(得分:1)
你应该使用grep和一般表达式,它应该与行的开头和结尾匹配:
grep -e '^Period 1$' > newfile.txt
这里的正则表达式表示:“<行的开头>句点<空格> 1<行的结尾>”
如果您不确定格式,可以使用表达式,它将匹配中间任意数量的空格(或任何其他空格):
egrep '^Period\s*1$' # egrep is synonym for `grep -E`, where -E stands for extended regexps
中正则表达式的进一步阅读