Chinaunix
标题:
求助,怎么添加字符??
[打印本页]
作者:
vTNTVV
时间:
2012-11-01 23:19
标题:
求助,怎么添加字符??
read -p "please input the alias name : " host
如果输入mysql-209 则$host=mysql-209
想把这mysql-209添加到hostgroups.cfg文件中,hostgroups.cfg内容如下:
define hostgroup{
hostgroup_name mysql-servers
alias mysql Servers
members mysql-157
}
想达到的效果如下:
define hostgroup{
hostgroup_name mysql-servers
alias mysql Servers
members mysql-157,mysql-209
}
当再次输入host新值时,比如mysql-211,则同样能添加到mysql-209的后面
求助怎么解决,麻烦大家帮帮忙,谢谢
作者:
dn833
时间:
2012-11-01 23:29
[root@cloud ~]# cat hostgroups.cfg
define hostgroup{
hostgroup_name mysql-servers
alias mysql Servers
members mysql-157
}
[root@cloud ~]# host=mysql-209
[root@cloud ~]# echo $host
mysql-209
[root@cloud ~]# sed '/members/ s/\(.*\)/&,'$host'/' hostgroups.cfg
define hostgroup{
hostgroup_name mysql-servers
alias mysql Servers
members mysql-157,mysql-209
}
复制代码
作者:
wang_xue_m
时间:
2012-11-01 23:42
file:
read -p "please input the aslias name:" host
sed -i "/members/{s/$/,$host/g}" hostgroup.cfg
复制代码
作者:
vTNTVV
时间:
2012-11-01 23:45
谢谢大家,我明天试试
作者:
vTNTVV
时间:
2012-11-01 23:56
回复
3#
wang_xue_m
这种方法 是可以的;但是如果我想指定行,也就是在第5到第10进行替换 怎么写呢 谢谢
作者:
yestreenstars
时间:
2012-11-02 00:21
回复
5#
vTNTVV
read -p "please input the aslias name:" host
sed -i "5,10{/members/s/$/,$host/}" hostgroup.cfg
复制代码
作者:
vTNTVV
时间:
2012-11-02 00:25
谢谢大家 :wink:
作者:
vTNTVV
时间:
2012-11-15 22:36
/members/s/$/ 这几个能解释一下吗
{/members/s/$/,$host/} /是分隔符是吗 我想试着把分隔符替换成# 好像不行
作者:
yestreenstars
时间:
2012-11-15 23:03
回复
8#
vTNTVV
这样写你应该看得懂了吧?/members/{s/$/,$host/}
作者:
zhaopingzi
时间:
2012-11-16 08:34
楼主相同的问题发过2遍了吧?
作者:
vTNTVV
时间:
2012-11-23 22:25
回复
9#
yestreenstars
谢谢
作者:
licong_jay
时间:
2012-11-27 16:05
#!/usr/bin/perl
print "please input the alias name, one name per line:\n";
while(<STDIN>){
chomp;
push @hosts, $_;
}
print "\n";
while(<DATA>){
chomp;
$line=$_;
for $host(@hosts){
$line =~ s/$/, $host/ if $line=~/members/;
}
print "$line\n";
}
__DATA__
define hostgroup{
hostgroup_name mysql-servers
alias mysql Servers
members mysql-157
}
$ ./2012.pl
please input the alias name, one name per line:
mysql-158
mysql-159
mysql-160
define hostgroup{
hostgroup_name mysql-servers
alias mysql Servers
members mysql-157, mysql-158, mysql-159, mysql-160
}
顺便说一下,copy楼主的原文本要当心, 需要dos2unix转换一下格式
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2