Dud*_*ude 1 shell bash sed quoting regular-expression
我正在研究 Unix 换行符到 Windows 换行符的转换。我尝试使用 unix2dos 但它给了我一些二进制错误,所以我查了一下并偶然发现了这个正则表达式
sed 's/$'"/`echo \\\r`/" input.txt > output.txt
这个正则表达式正在工作,但我不知道,它是如何工作的?显然我试图通过这种形式来解释它
sed 's/a/b/'
这里
a 指的是 $'",我不明白
。b 指的echo \\\r是 '\r'
另外我不明白为什么/如何使用单引号和双引号的组合?谁能给我解释一下这个正则表达式?
没有 $'"
's/$'"/`echo \\\r`/" == "s/\$/`echo \\\r`/"
但是正则表达式作者只是喜欢$通过单引号来逃避。
您可以以任何您喜欢的方式组合这种转义。
所以你的正则表达式只是附加\r到行尾。
更新。最初从问题中不清楚它使用`echo \\\r` 而不是只使用echo \\\r。这里没有必要使用echo。您可以直接在 sed 中执行此操作:
sed 's/$/\r/'