我这种格式有一个文件接下来该怎么插入到行
机器名称主机1
东西here1机器名称主机1
somethingelse2
我需要改变这作为
机器名称主机1
设定的用户名1000
东西here1
机器名称主机1
设定的用户名1001somethingelse2
我需要找到一条线 “计算机名称主机1”并在其旁边的所有匹配项中插入“set username with incremental-value”行。
我这种格式有一个文件接下来该怎么插入到行
机器名称主机1
东西here1机器名称主机1
somethingelse2
我需要改变这作为
机器名称主机1
设定的用户名1000
东西here1
机器名称主机1
设定的用户名1001somethingelse2
我需要找到一条线 “计算机名称主机1”并在其旁边的所有匹配项中插入“set username with incremental-value”行。
awk -v user=1000 '
{print}
/machine name host1/ {printf("set username %d\n", user++)}
' filename
我通过用户名“种子”值与awk的-v选项
使用一个Perl的一行(假设与数据文件的名字叫做“机”:
perl -n -i.bak -e '$i=999 if !$i;
if (m/machine name host1/) {
$i++;
$_ = "$_\nset username $i\n";
};
print;' machines
注意的是,文件本身将被改变和备份文件扩展名为.bak的创建
一个班轮带有嵌入式换行符似乎有点用词不当:) – 2011-03-26 12:50:35
@William:德勤 – 2011-03-26 20:11:41
谢谢你的答案。但我的需求需要awk。 :d – 2011-03-28 06:42:00