簡體   English   中英

如何使用 sed 將文件中的每一行括在雙引號中?

[英]How to enclose every line in a file in double quotes with sed?

這是我試過的: sed -i 's/^.*/"$&"/' myFile.txt

它在每行的開頭放了一個 $。

這里是

sed 's/\(.*\)/"\1"/g'

更短

sed 's/.*/"&"/'

沒有空格

sed 's/ *\(.*\) *$/"\1"/'

跳過空行

sed '/^ *$/d;s/.*/"&"/'

你幾乎做對了。 試試這個稍微修改過的版本:

sed 's/^.*$/"&"/g' file.txt

您也可以在沒有捕獲組的情況下執行此操作:

sed 's/^\|$/"/g'

'^' 匹配行首,'$' 匹配行尾。

| 是一個“交替”,它只是意味着“或”。 這里需要轉義[1],所以英文^\|$的意思是“行首或行尾”。

“替換”這些字符很好,它只是將文本附加到末尾的開頭,因此我們可以替換" ,並在末尾添加g以進行全局搜索以同時匹配兩者。

[1] 不幸的是,事實證明 | 不是 POSIX“基本正則表達式”的一部分,而是可以使用 REG_ENHANCED 標志編譯的“增強”功能的一部分,但在 OSX 上不是默認設置,因此使用適當的基本捕獲組(如s/^\(.*\)$/"\1"/ )會更安全s/^\(.*\)$/"\1"/

今天給我謙虛的餡餅。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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