Hi All,
I want to write a script to rename the file in to the incremental order
for example
Original file
[job1]
filename=/nfs/n1/file1.img
[job1]
filename=/nfs/n1/file1.img
[job1]
filename=/nfs/n1/file1.img
[job1]
filename=/nfs/n1/file1.img
[job1]
filename=/nfs/n1/file1.img
I want output shpuld be like this
[job1]
filename=/nfs/n1/file1.img
[job2]
filename=/nfs/n1/file2.img
[job3]
filename=/nfs/n1/file3.img
[job4]
filename=/nfs/n1/file4.img
[job5]
filename=/nfs/n1/file5.img
Thanks in advance
$ nawk '{if(NR%2==1){a=a+1;print "[job"a"]"}else{b=b+1;print "filename=/nfs/n1/file"a".img"}}' test
[job1]
filename=/nfs/n1/file1.img
[job2]
filename=/nfs/n1/file2.img
[job3]
filename=/nfs/n1/file3.img
[job4]
filename=/nfs/n1/file4.img
[job5]
filename=/nfs/n1/file5.img
1 Like
Alternate awk..
awk '{a=++i;v="[job"a"]\n";getline;sub(/file1/,"file"a);print v $0}' inputfile
1 Like
Slightly more general (expecting lines starting with "filename=" and applies increasing increment on whatever number it finds before the extension dot):
perl -p -e 'chomp;if(m,^filename=,){@f=split("=");@name=split("/",@f[$#f]);if(@name[$#name]=~m,(.*)([0-9]+)(\..+),){@name[$#name]=join("",$1,($2+$i++),$3)};@f[$#f]=join("/",@name);$_=join("=",@f)}$_.=$/' inputfile
1 Like
Thanks friends for usefull comments ....