私は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/'