当逗号存在时,sed命令不起作用

时间:2016-08-25 22:46:40

标签: unix sed command

sed的新手,所以请耐心等待......

我有一个php文件,其中包含以下行:

define('TARGET_A','044');

我想找到该行并使用sed将其替换为以下内容:

define('TARGET_K','076');

我试过了:

$ sed -i 's/define\(\'TARGET_A\',\'044\'\)\;/define\(\'TARGET_K\',\'076\'\)\;/' myfile.php

我尝试了几种变体,试图逃避parens并删除分号,似乎没有任何工作

任何帮助都非常感谢,谢谢

3 个答案:

答案 0 :(得分:5)

那是很多逃避的事。怎么样......根本没有逃脱?

vid.set()

示例:

sed -i '.bak' "s/define('TARGET_A','044');/define('TARGET_K','076');/" myfile.php

答案 1 :(得分:1)

这对我有用:

$sed -i "s/define('TARGET_A','044');/define('TARGET_K','076');/" myfile.php

我更改了参数字符串分隔符以使其更简单。

答案 2 :(得分:0)

您无法在def post_search(request): form = SearchForm() # Initialize variables cd = results=total_results=None if 'query' in request.GET: form = SearchForm(request.GET) if form.is_valid(): cd = form.cleaned_data results = SearchQuerySet().models(Post).filter(content=cd['query']).load_all() # count total results total_results = results.count() return render(request, 'blog/post/search.html', {'form': form, 'cd': cd, 'results': results, 'total_results': total_results}) 分隔的脚本中转义[25/Aug/2016 23:05:33] "GET /blog/search/ HTTP/1.1" 200 2260 ,因此每当需要'时,您需要使用'转发回shell。您可能会想要使用'\''来分隔脚本,但是然后您将其打开到shell变量扩展等,因此您需要注意脚本中的内容并转义某些字符以阻止shell扩展它们。它更加健壮(并且通常使您的脚本更简单)只需坚持单引号并转移到shell只是为了您需要的部分:

'