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