Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux sed:在特定行中添加字符串_Linux_Sed_Awk - Fatal编程技术网

Linux sed:在特定行中添加字符串

Linux sed:在特定行中添加字符串,linux,sed,awk,Linux,Sed,Awk,我想在段落中的特定位置添加一个字符串 即: $rcmail_config['default_host'] = ''; 到 可以使用sed吗?sed-e/\$rcmail\u config/s/';$/'abcdef';/“应该做你想做的事 > echo -e "foo = '';\nbar = '';\n\$rcmail_config['default_host'] = '';" foo = ''; bar = ''; $rcmail_config['default_host'] = '

我想在段落中的特定位置添加一个字符串

即:

$rcmail_config['default_host'] = '';

可以使用sed吗?

sed-e/\$rcmail\u config/s/';$/'abcdef';/“
应该做你想做的事

> echo -e "foo = '';\nbar = '';\n\$rcmail_config['default_host'] = '';"
foo = '';
bar = '';
$rcmail_config['default_host'] = '';

> echo -e "foo = '';\nbar = '';\n\$rcmail_config['default_host'] = '';" | sed -e "/\$rcmail_config/s/'';$/'abcdef';/"
foo = '';
bar = '';
$rcmail_config['default_host'] = 'abcdef';
制作:


它将只替换该行,并设置您的数据,而不管以前是什么。

假设文件中只有一个$rcmail\u配置(当然是这种情况)。更多,但鉴于OP编写的内容,我无法限制更多。请使用组简化替换模式(避免错误并更易于阅读)
> echo -e "foo = '';\nbar = '';\n\$rcmail_config['default_host'] = '';"
foo = '';
bar = '';
$rcmail_config['default_host'] = '';

> echo -e "foo = '';\nbar = '';\n\$rcmail_config['default_host'] = '';" | sed -e "/\$rcmail_config/s/'';$/'abcdef';/"
foo = '';
bar = '';
$rcmail_config['default_host'] = 'abcdef';
sed -i "s/\$rcmail_config\['default_host'\] =.*/\$rcmail_config['default_host'] = 'abcdef';/" /your.file