簡體   English   中英

嘗試使用 sed 在 bash 中打印“\\n”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM