我有一个包含100个国家/地区列表的txt文件,但周围没有引号。我想改变这个
Canada
USA
进入这个
countries['Canada']=true
等
这是我正在尝试的sed命令,'\ 1'代表引号中的国家。
sed -e "s/\(.*\)/countries['\1']=true" source.txt > output.txt
我得到的错误是
替换模式中未转义的换行符
我需要什么sed命令来实现我想要做的事情,以及为什么我会收到此错误
答案 0 :(得分:3)
你最后错过了一个尾随/
:
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
答案 1 :(得分:1)
我只想在开头和结尾添加内容:
sed -e "s/^/countries['/" -e "s/$/']=true/" source.txt > output.txt