4

使用 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/"
4

1 回答 1

1

您已经很接近了,但是您需要在sed命令周围使用双引号并转义大括号。试试这个:

sed -i "/\.$hostTLD\/[0-9]\{4\}\/[0-9]\{2\}/d" filename

对于您的第二个命令,请使用以下命令:

sed -i "/\.$hostTLD\/category\//d" filename
于 2012-12-13T02:22:30.783 回答