如何将文件中的每一行用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"/

今天谦卑的馅饼。