我正在尝试在'rest_framework',
之后的文件中添加字符串'django.contrib.staticfiles',
,但是当我尝试使用
sed '/'django.contrib.staticfiles',/a 'rest_framework',' file
我收到错误说
sed:1:“/'django.contrib.static ...”:命令a期望\后跟文字
我在符号周围尝试了\
的相同命令。
答案:安装gased as base MacOS sed在指定字符串下创建行时效果不佳。
答案 0 :(得分:4)
在彼此内部使用单引号变得非常混乱。使用双引号保留搜索字符串的文字值。只要你没有包含$
字符串的搜索/替换字符串,使用双引号应该没问题
sed "/'django.contrib.staticfiles',/a 'rest_framework'," file
显然,MacOS上sed
的FreeBSD版本仍然为上述语法抛出错误,并通过安装sed
并使用brew install gnu-sed
运行命令来使用GNU gsed
细
答案 1 :(得分:2)
'rest_framework',
之后 添加 'django.contrib.staticfiles',
:
$ echo \'django\.contrib\.staticfiles\'\, |
sed "s/\('django.contrib.staticfiles',\)/\1'rest_framework',/g"
'django.contrib.staticfiles','rest_framework',
要在下一行获取'rest_framework',
,请在\n
之后添加\1
。
答案 2 :(得分:1)
关注awk
也可以为您提供帮助。
awk '{gsub(/\047django.contrib.staticfiles\047\,/,"&\047" ORS "rest_framework\047,")} 1' Input_file
如果将输出保存到Input_file,请在上面的代码中添加> temp_file && mv temp_file Input_file
。