この正規表現は何を意味しますか?

この正規表現は何を意味しますか?

私はUnix改行をWindows改行に変換する作業をしています。私はunix2dosを試しましたが、いくつかのバイナリエラーが発生し、それを見つけて偶然この正規表現を見つけました。

sed 's/$'"/`echo \\r`/" input.txt > output.txt

この正規表現はうまくいきますが、どのように機能するのかわかりません。明らかに私はこの形式でそれを説明しようとしています。

sed 's/a/b/'

ここ

aは$ '"を参照しています。理解できません。b
echo \\\r'\ r'を参照しています。

また、一重引用符と二重引用符の組み合わせを使用する理由/方法は理解できません。誰でも私にこの正規表現を説明できますか?

ベストアンサー1

いいえ$'"

's/$'"/`エコ \\r`/" == "s/\$/`エコ \\r`/"

$ただし、正規表現の作成者は一重引用符でエスケープすることを好みます。

必要に応じてこれらのエスケープを組み合わせることができます。

したがって、正規表現は行の\r末尾に追加されます。

直す。最初はecho\\rだけでなく、"echo\\r"も使用したことは明確ではありませんでした。ここでは使用する必要はありませんecho。 sedから直接実行できます。

sed 's/$/\r/'

おすすめ記事