这是我试过的: 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"/
今天谦卑的馅饼。