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 word ワイルドカード検索および置換メソッドを試しましたが、機能せず、いくつかのエラーが表示されます。

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 に答える