【发布时间】:2015-06-16 04:55:31
【问题描述】:
查看我们的 Magento 应用程序,我在 cms 页面中发现了几个未使用的链接,因此,我导出了表,我有一个 sql 文件,现在我想使用命令行替换/删除这些链接。
我正在尝试使用正则表达式模式来做这件事,但我的正则表达式经验是基于玩这个regex interactive web。
这些页面中有很多链接,但我只想删除那些链接到 domainname.com 和 domainname.es 的链接,所以,使用此类链接最好的方法是:
<a title=\"CRADLE 1-SLOT SER USB CK30/31 NOTES\" href=\"http://domainname.com/terminales-intermec-accesorios/3813-cradle-1-slot-ser-usb-ck3031-notes.html\"></a>
或
<a title=\"CRADLE 1-SLOT SER USB CK30/31 NOTES\" href=\"http://domainname.es/terminales-intermec-accesorios/3813-cradle-1-slot-ser-usb-ck3031-notes.html\"></a>
我试图用grep 和/或sed 做一些事情,但是用我的正则表达式
grep “\w+\=+\\\"+\w+\:\/\/+(s|\w)+(s|\.)+(s|plusexpress)+\.(\/a>)\b”
它不起作用,所以,欢迎任何帮助!
编辑:
这个 sqlfile 只有这样的字符串:
d style=\"text-align: center;\"> <img src=\"http://www.anotherdomain.com/media/small_image.jpg\" alt=\"\" width=\"117\" height=\"117\" /><br /></td>\r\n<td style=\"text-align: center;\">\r\n<p>PSU WALL AC CV30 NOTES</p>\r\n</td>\r\n<td>Univ Supply Circ 5P 12V 50W FW5012 RoHS.<br /></td>\r\n<td>Requires AC power cord (CAIEC) Will not power heated display element. </td>\r\n</tr>\r\n<tr>\r\n<td style=\"text-align: left;\">\r\n<p><a href=\"http://www.anotherdomain.com/checkout/cart/add?product=7797\" target=\"_blank\">VE011-2013</a><a title=\"WALL MOUNT CABLE PROTECTOR CV30 NOTES\" href=\"http://domainname.es/termina-accesorios/3982-wall-mount-cable-protector-cv30--notes.html\"></a></p>\r\n</td>\r\n<td style=\"text-align: center;\"><img src=\"http://www.anotherdomain.com/media/small_image.jpg\" alt=\"\" width=\"117\" height=\"117\" /><br /></td>\r\n<td style=\"text-align: center;\">\r\n<p>WALL MOUNT CABLE PROTECTOR CV30 NOTES<a title=\"WALL MOUNT CABLE PROTECTOR CV30 NOTES\" href=\"http://www.anotherdomain.com/ve011-2013\"></a></p>\r\n</td>\r\n<td> </td>\r\n<td> </td>\r\n</tr>\r\n<tr>\r\n<td style=\"text-align: left;\">\r\n<p><a href=\"http://www.anotherdomain.com/checkout/cart/add?product=3681\" target=\"_blank\">VE011-2011</a><a title=\"ADAPTOR MOUNTING PLATE CV30 \" href=\"http://domainname.es/termina-accesorios/3981-adaptor-mounting-plate-cv30-.html\"></a></p>\r\n</td>\r\n<td style=\"text-align: center;\"><img src=\"http://www.anotherdomain.com/media/small_image.jpg\" alt=\"\" width=\"117\" height=\"117\" /><br /></td>\r\n<td style=\"text-align: center;\">\r\n<p>ADAPTOR MOUNTING PLATE CV30</p>\r\n</td>\r\n<td><br /></td>\r\n<td> </td>\r\n</tr>\r\n<tr>\r\n<td style=\"text-align: left;\">\r\n<p><a href=\"http://www.anotherdomain.com/checkout/cart/add?product=3680\" target=\"_blank\">VE011-2006</a></p>\r\n</td>\r\n<td style=\"text-align: center;\"><span style=\"color: #ff0000;\"><img title=\"VE011-2006 MOUNT KIT BRACKET WALL CV30\" src=\"h
【问题讨论】:
-
您正在使用 html 或同化,因此您还应该为通用模式假设很多变体。对于 grep/sed/awk 等非面向 HTML 的产品,回复将不是防弹的
-
正则表达式不是正确的工具:blog.codinghorror.com/parsing-html-the-cthulhu-way
标签: regex unix sed grep html-parsing