如何与输入文件中的url字符串完全匹配并删除它?

时间:2015-11-02 05:07:26

标签: bash sed grep

我有一个输入/输入文件,其中包含带有这样的网址的行

https://www.youtube.com/watch?v=VXw6OdVmMpw          Mon Nov 2 10:25:32 2015 
https://www.youtube.com/watch?v=VXw6OdVmMpw          Mon Nov 2 10:27:34 2015
https://www.youtube.com/watch?v=VXw6OdVmMpw          Mon Nov 2 10:28:23 2015

我想要grep只有他们完全匹配的字符串,就像我最后一行的sed一样 这是https://www.youtube.com/watch?v=VXw6OdVmMpw Mon Nov 2 10:28:23 2015

因此它将仅删除最后一行 注意:行前面可能包含相同的文本,但日期和时间不同,所以我需要完全匹配, 谢谢你的理解。

2 个答案:

答案 0 :(得分:0)

您是否只想在行的开头使用url替换整行?
以下命令中的正则表达式的两部分:
1.匹配网址:

  

^([A-ZA-Z0-9:/?=] *)

  1. 匹配最后一部分:
  2.   

    *

    然后使用URL部分替换整行。

    echo "https://www.youtube.com/watch?v=VXw6OdVmMpw          Mon Nov 2 10:28:23 2015" | sed 's/^\([a-zA-Z0-9:/.?=]*\).*/\1/'
    

    结果是

    https://www.youtube.com/watch?v=VXw6OdVmMpw
    

    这是你想要的吗?

    enter image description here

答案 1 :(得分:-2)

可以通过使用:

来实现所需的输出
grep -v 'text to grep'