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