在Linux上的特定字符串上使用grep命令

时间:2018-10-22 21:36:02

标签: linux grep

让我们考虑一个包含下一行的列表:

site.com/link1/index.php
site.org/link1/index.php
site.com/link2/page/index.php
site.ru/link1/index.php
site.no/link3/index.php
site.com/link3/index.php
site.no/link/page/index.php

我该如何grep并将仅包含域扩展名后的特定字符串的行保存并保存在单独的文件中(例如.ru,.com,.no,.org) 例如,我只想保存包含link1,org link2的行... 谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用-E选项(正则表达式)。就您而言,应该是:

grep -E "\.\w{2,3}\/link[12]" yourFile.txt > newFile.txt

位置:

  • -E表示正则表达式;
  • > newFile.txt将结果放入 newfile.txt中grep的内容;

关于正则表达式:

  • \.\w{2,3}表示所有包含点(\.)的行 2个或3个单词字符(\w{2,3});
  • \/link[12]的斜杠(\/)后跟文本link,反之则必须后面跟数字1或2([12])。您可以将[12]更改为\d+,这表示任何具有一位或多位数字的数字。

希望能为您提供帮助。

参考:https://www.digitalocean.com/community/tutorials/using-grep-regular-expressions-to-search-for-text-patterns-in-linux