sed はテキスト URL を HTML URL に置き換えます。

sed はテキスト URL を HTML URL に置き換えます。

テキストファイルに複数のURLがあります。 FirefoxはこれらのURLを直接読み込めないように見えるため、そのURLをHTMLに変換する必要があります。

使用してもsed動作しません。

sed -e 's/^(.*)$/<a href="\1">\1<\/a><br>/g' myfile.txt

返されたエラーメッセージ(翻訳済み、英語システムではこれと正確に一致しない可能性があります):

sed: -e expression n°1, char 33: invalid reference \1 in right side of the command `s'

私は理由を知りたいですか?

URLは次のとおりです。

https://unix.stackexchange.com/questions/378496/sed-to-replace-text-url-to-html-url

一部には次の文字を含めることができます:%&/ \ _ - =:

行末、実際の改行の前に「改行」があり、.*文に含まれているようです。 Windows環境でファイルが作成されたためです。

答え1

正規表現の一部をグループ化するには、\(\)拡張正規表現構文を使用するオプションを使用または提供します。-Esed

あなたの場合はまったく必要ありません。完全一致の場合は、&交換に使用できます。

sed 's/.*/<a href="&"><\/a><br>/' myfile.txt

貪欲^は一致に行全体を含めるため、合計を削除することもできます。$*

答え2

/sed式でキャプチャテキストを区切り文字として使用しているため、/失敗します。

's@^(.*)$@<a href="\1">\1<\/a><br>@g'変換するmailtoリンクがないとし、試してみてください。

また、使用することができます's!^(.*)$!<a href="\1">\1<\/a><br>!g'

関連情報