[英]Trying to print "\n" in bash with sed
在 sed 插入兩個字符的序列\\ n 時遇到一些問題。 (我正在使用 bash 創建一些期望腳本)。 我在替換模式中嘗試的任何內容最終都會成為實際的換行符。
我試過了:
sed s/<string>/'\\\\n'/
sed s/<string>/\\\\n/
sed s/<string>/\\n/
幾乎任何有意義或沒有意義的排列。
我需要它與安裝在 Mac 上的 bash 和 sed 一起使用。
sed s/<string>/'\\\\n'/
適用於我的 Lunix (GNU) 和 OS X (bsd) 版本的sed
:
$ echo aXb | sed s/X/'\\n'/
a\nb
sed s/<string>/\\\\\\\\n/
也可以。 當 bash 看到\\\\
(引號之外)時,它會將其視為單個轉義反斜杠,因此\\
實際上傳遞給命令。 當它看到\\\\\\\\n
,它只是兩個轉義的反斜杠,后跟“n”,因此它將\\\\n
傳遞給命令。 然后,當sed
看到\\\\n
,它也會將其視為轉義反斜杠后跟“n”,因此替換字符串最終為\\n
。 由於“n”總是在任何完成的轉義序列之后,它只是被視為替換字符串中的另一個字符。
純代碼,單引號
sed 's/Pattern/\\n/' YourFile
Shell 解釋,雙引號
sed "s/Pattern/\\\\n/" YourFile
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.