我有以下文本:
s:50:"index.php?attachment=$matches[1]&cpage=$matches[2]";s:44:"(term-conditions-for-employers)/trackback/?$";s:35:"index.php?pagename=$matches[1]&tb=1";s:71:"(term-conditions-for-employers)/feed/(feed|rdf|rss|rss2|atom|jobman)/?$";s:47:"index.php?pagename=$matches[1]&feed=$matches[2]";s:66:"(term-conditions-for-employers)/(feed|rdf|rss|rss2|atom|jobman)/?$";s:47:"index.php?pagename=$matches[1]&feed=$matches[2]";s:52:"(term-conditions-for-employers)/page/?([0-9]{1,})/?$";s:48:"index.php?pagename=$matches[1]&paged=$matches[2]";s:59:"(term-conditions-for-employers)/comment-page-([0-9]{1,})/?$";s:48:"index.php?pagename=$matches[1]&cpage=$matches[2]";s:44:"(term-conditions-for-employers)(/[0-9]+)?/?$";s:47:"index.php?pagename=$matches[1]&page=$matches[2]";s:26:"home/attachment/([^/]+)/?$";s:32:"index.php?attachment=$matches[1]";s:36:"home/attachment/([^/]+)/trackback/?$";s:37:"index.php?attachment=$matches[1]&tb=1";s:63:"home/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom|jobman)/?$";s:49:"index.php?attachment=$matches[1]&feed=$matches[2]";s:58:"home/attachment/([^/]+)/(feed|rdf|rss|rss2|atom|jobman)/?$";
我要做的是搜索单词jobman并删除找到该单词的整个条目。每个条目的分隔符是分号";"。我需要从Mac OS命令行来做。所以我有grep、fgrep和awk等工具可用。
首先,我们需要从文本中删除什么?
$> grep -o -P "[^;]*jobman[^;]*;" ./text
s:71:"(term-conditions-for-employers)/feed/(feed|rdf|rss|rss2|atom|jobman)/?$";
s:66:"(term-conditions-for-employers)/(feed|rdf|rss|rss2|atom|jobman)/?$";
s:63:"home/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom|jobman)/?$";
s:58:"home/attachment/([^/]+)/(feed|rdf|rss|rss2|atom|jobman)/?$";
如果正确,则
$> sed "s/[^;]*jobman[^;]*;//g" ./text
s:50:"index.php?attachment=$matches[1]&cpage=$matches[2]";s:44:"(term-conditions-for-employers)/trackback/?$";s:35:"index.php?pagename=$matches[1]&tb=1";s:47:"index.php?pagename=$matches[1]&feed=$matches[2]";s:47:"index.php?pagename=$matches[1]&feed=$matches[2]";s:52:"(term-conditions-for-employers)/page/?([0-9]{1,})/?$";s:48:"index.php?pagename=$matches[1]&paged=$matches[2]";s:59:"(term-conditions-for-employers)/comment-page-([0-9]{1,})/?$";s:48:"index.php?pagename=$matches[1]&cpage=$matches[2]";s:44:"(term-conditions-for-employers)(/[0-9]+)?/?$";s:47:"index.php?pagename=$matches[1]&page=$matches[2]";s:26:"home/attachment/([^/]+)/?$";s:32:"index.php?attachment=$matches[1]";s:36:"home/attachment/([^/]+)/trackback/?$";s:37:"index.php?attachment=$matches[1]&tb=1";s:49:"index.php?attachment=$matches[1]&feed=$matches[2]";
我们在"s/[^;]*jobman[^;]*;//g"
中实际做的是搜索[^;]*jobman[^;]*;
组符号(任何时候都不是:
, jobman
, :
,;)。然后我们用"。然后对所有文本行进行替换