0

我想要这些文本行:

[URL=http://something.com/attachment/ap0djrk27dja]flower.mpg - 129.7 MB[/URL]
[URL=http://something.com/attachment/XjotHS4jrgod]book.mpg - 200.3 MB[/URL]
[URL=http://something.com/attachment/as5r8ukAr64W]vacation.mpg - 2.1 GB[/URL]
[URL=http://something.com/attachment/kauirnmfaf57]love.avi - 30.4 MB[/URL]

转换成:

http://something.com/attachment/ap0djrk27dja/flower.mpg.html
http://something.com/attachment/XjotHS4jrgod/book.mpg.html
http://something.com/attachment/as5r8ukAr64W/vacation.mpg.html
http://something.com/attachment/kauirnmfaf57/love.avi.html

使用 Textpipe 或其他文本处理工具。

我知道如何使用 ff 在 MS Word 中做到这一点。通配符查找和替换方法:

(Find what) \[URL=(*)\](*) - * *\[/URL\]^13
(Replace with) \1/\2.html^p

我也知道 Textpipe pro 有一个“查找模式(MS Word 样式)”替换过滤器,我尝试了上面的 MS 单词通配符查找和替换方法,但它不起作用并显示一些错误。

我无法使用 MS Word 完成任务的原因是我需要处理的文本文件包含数十万行,MS Word 根本无法处理,因为如果您粘贴大量文本,它会挂起。除了使用文本管道之外,我对方法持开放态度。

4

3 回答 3

1

使用 sed:

sed -n 's/[^=]*=\([^ ]*\).*/\1.html/;s/]/\//p' input_file

或更严格:

sed -n 's/^\[URL=\([^ ]*\).*/\1.html/;s/]/\//p' input_file
于 2012-08-12T15:20:21.680 回答
0

这可能对您有用(GNU sed):

sed 's/^\[URL=\([^]]*\)\]\([^ ]*\) .*/\1\/\2.html/' file
于 2012-08-12T17:55:16.070 回答
0

以下应该在 GNU sed 中工作。如果file有文字:

sed -r 's#.*(http://[^]]*)\]([^ ]*).*#\1/\2#' file
于 2012-08-12T15:24:09.323 回答