这就是我尝试过的:sed -i 's/^.*/"$&"/' myFile.txt
它在每一行的开头放了一个$。
答案 0 :(得分:27)
这里是
sed 's/\(.*\)/"\1"/g'
答案 1 :(得分:12)
更短的
sed 's/.*/"&"/'
没有空格
sed 's/ *\(.*\) *$/"\1"/'
跳过空行
sed '/^ *$/d;s/.*/"&"/'
答案 2 :(得分:4)
你几乎做对了。试试这个稍微修改过的版本:
sed 's/^.*$/"&"/g' file.txt
答案 3 :(得分:2)
您也可以在没有捕获组的情况下执行此操作:
sed 's/^\|$/"/g'
' ^'匹配行的开头,' $'匹配线的末尾。
|
是" Alternation",它只是意味着" OR"。它需要在这里进行转义[1],所以英语^\|$
表示"行的开头或结尾"。
"更换"这些字符很好,它只是在最后将文字添加到开头,因此我们可以替换"
,并在末尾添加g
以进行全局搜索,以便同时匹配两者。
[1]不幸的是,事实证明|不属于POSIX"基本正则表达式"但是#34;增强的一部分"可以使用REG_ENHANCED标志编译的功能,但在OSX上默认情况下不是这样,因此您可以使用适当的基本捕获组(如s/^\(.*\)$/"\1"/
今天对我来说很谦卑。