使用sed我在创建sitemap.xml之前尝试匹配和删除txt文件中的博客条目时遇到问题
# Contents of filename: # http://www.example.com/2008/10/article3.html # http://www.example.com/2009/11/article7.html #!/bin/bash hostName="www.example.com" hostTLD="$(echo ${hostName}|cut -d . -f 3)" # results in "com" sed -i '/\.'"${hostTLD}"'\/\([0-9]{4}\)\/\([0-9]{2}\)/d' filename
我无法弄清楚如何匹配年/月位.我想删除所有包含“.TLD / year / month /”的行
我知道$hostTLD部分有效,因为我使用了不同的匹配:
sed -i '/\.'"${hostTLD}"'\/category\//d' filename # works! ".TLD/category/"
解决方法
你很接近,但你需要在你的sed命令周围使用双引号并逃避括号.试试这个:
sed -i "/\.$hostTLD\/[0-9]\{4\}\/[0-9]\{2\}/d" filename
对于第二个命令,请使用:
sed -i "/\.$hostTLD\/category\//d" filename