用于获取特定字符串的unix中的grep命令

时间:2015-04-07 19:35:04

标签: bash unix grep

我有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>

1 个答案:

答案 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

有关grephttps://www.digitalocean.com/community/tutorials/using-grep-regular-expressions-to-search-for-text-patterns-in-linux

中正则表达式的进一步阅读