作者aeolus0829 (阿洽)
看板Linux
标题Re: [问题] 看不太懂这行sed的语法(取代unix2dos功
时间Tue Dec 1 10:47:48 2020
※ 引述《alloc (大碗卤肉饭男孩)》之铭言:
: 各位前辈好,
: 因为我想将unix文件转成dos模式(加入carrige return),但不能用unix2dos指令。
: 在网路上找到以下的sed方式:
: sed 's/$'"/`echo \\\r`/" file > output
'' 单引号,用来包语法的
s 取代以下 条件
/ 分隔语法用
条件 $ 是正规表示法,用来表示每一行的结尾
"" 双引号,用来包语法的,和单引号的差别是某些变数在这里会被再还原为常数
$1 = a 大概是这样 "$1"= "a"
`` shell 里执行外部指令用的 (应该说非shell 内建指令)
echo 不解释,\\\r 是用来送 换行符号 (carrige return) 要用那麽多斜线是为了
跳脱正规表示法,\ 是跳脱就是告诉指令接下来的字元不要当成特殊符号
所以 sed 那一行的意思是
找 $ 符号,取代成 \r
可能解释的不是很好.. 我尽力了 ="=
: 可以用,但我实在看不懂这段语法…有人可以帮忙解释一下吗?
: 还是说以我的需求还有更简单好懂的取代方式?(sed/awk/tr?) 先谢谢了。
: -----
: Sent from JPTT on my iPhone
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.249.13.217 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1606790870.A.E52.html
1F:→ alloc: 感谢,这以已经很清楚了。 12/01 11:20
2F:推 jamselee: 推热心 12/14 09:36