Re: [問題] 看不太懂這行sed的語法(取代unix2dos功

作者: aeolus0829 (阿洽)   2020-12-01 10:47:48
※ 引述《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?) 先謝謝了。
:
作者: alloc (韭菜)   2020-12-01 11:20:00
感謝,這以已經很清楚了。
作者: jamselee (jamselee)   2020-12-14 09:36:00
推熱心

Links booklink

Contact Us: admin [ a t ] ucptt.com