Sed 替换模式内的未转换换行符

Sed 替换模式内的未转换换行符,sed,Sed,我有一个txt文件,其中列出了100个国家,周围没有引号。我正试图改变这一点 Canada USA 进入这个 countries['Canada']=true 等等 这是我正在尝试的sed命令,其中“\1”用引号表示国家 sed -e "s/\(.*\)/countries['\1']=true" source.txt > output.txt 我得到的错误是 替换模式内的未转换换行符 我需要什么sed命令来实现我要做的事情,为什么我会出现这个错误你刚才错过了结尾的一个/:

我有一个txt文件,其中列出了100个国家,周围没有引号。我正试图改变这一点

Canada
USA
进入这个

countries['Canada']=true
等等

这是我正在尝试的sed命令,其中“\1”用引号表示国家

sed -e "s/\(.*\)/countries['\1']=true" source.txt > output.txt
我得到的错误是

替换模式内的未转换换行符


我需要什么sed命令来实现我要做的事情,为什么我会出现这个错误

你刚才错过了结尾的一个
/

                                       v
$ sed -e "s/\(.*\)/countries['\1']=true/" file
countries['Canada']=true
countries['USA']=true
另外请注意,您不需要捕获组,只需将所有内容与
*
匹配,然后使用
&
将其打印回来:

            |-------------|
            vv            v
$ sed -e "s/.*/countries['&']=true/" a 
countries['Canada']=true
countries['USA']=true

您刚刚错过了结尾处的尾随
/

                                       v
$ sed -e "s/\(.*\)/countries['\1']=true/" file
countries['Canada']=true
countries['USA']=true
另外请注意,您不需要捕获组,只需将所有内容与
*
匹配,然后使用
&
将其打印回来:

            |-------------|
            vv            v
$ sed -e "s/.*/countries['&']=true/" a 
countries['Canada']=true
countries['USA']=true

我只想在开头和结尾添加一些内容:

sed -e "s/^/countries['/" -e "s/$/']=true/" source.txt > output.txt

我只想在开头和结尾添加一些内容:

sed -e "s/^/countries['/" -e "s/$/']=true/" source.txt > output.txt

非常感谢。你知道如果我试图用双引号而不是像这样用单引号括住
&
国家[“&”]
为什么不起作用吗?别担心,明白了,需要避开双引号。@Leahcim可能是因为你已经在使用
sed语句的引号。尝试使用
sed'.'
它会起作用的。谢谢。你知道如果我试图用双引号而不是像这样用单引号括住
&
国家[“&”]
为什么不起作用吗?别担心,明白了,需要避开双引号。@Leahcim可能是因为你已经在使用
sed语句的引号。试着使用
sed'.'
,它就会起作用。