Format:
bin/$OSDIR/(foh) lib/$OSDIR/(libdx_t
libmpxref_t libudr_t libudrInt_t libshmadm libudr libudrInt libdx libdta
libnatax libmprdm libmputil libmpanonym libmpxref libmpcontainer
libnumnorm libmpbasics libtax libbat++ libbat++curcy libbat libcomlock
libhooks libudr_sh librulelib libudr_sh_t)
Converted Format:
bin/$OSDIR/foh.so
lib/$OSDIR/{libdx_t.so,libmpxref_t.so,libudr_t.so,libudrInt_t.so,libshmadm.so
,libudr.so,libudrInt.so,libdx.so,libdta.so,libnatax.so,libmprdm.so
,libmputil.so,libmpanonym.so,libmpxref.so,libmpcontainer.so,libnumnorm.so,
libmpbasics.so,libtax.so,libbat++.so,libbat++curcy.so,libbat.so,
libcomlock.so,libhooks.so,libudr_sh.so,librulelib.so,libudr_sh_t.so}
Script:
open("FILE","<libsa");
open("FILE1",">>libsa1");
print FILE1 "{";
while($line=<FILE>)
{
$line=~tr/()/{}/;
@s=split(" ",$line);
foreach $i (@s)
{
if ( $i =~ /lib[a-z,A-Z,_]*/ && $i =~ /{lib/ )
{
print FILE1 "$i.so,";
}
elsif ( $i =~ /[a-z,A-z]*/ && $i =~ /{/ && $i =~ /}/ )
{
$i=~s/{//;
$i=~s/}//;
print FILE1 "$i,";
}
elsif ( $i =~ /lib[a-z,A-Z,_,.]/ )
{
if ( $i =~ /}/ )
{
$i=~s/}//;
print FILE1 "$i.so,"."}";
}
else
{
print FILE1 "$i.so,";
}
}
else
{
print FILE1 "$i,";
}
}
}
print FILE1 "/dev/null}\n";
Same Script in Shell:
cat inputfile | grep -i "(lib[a-x]" | tr '()' '{}' | sed -e 's/lib[a-z,A-Z,+,_]*/&.so /g' -e 's/\s\+/,/g' -e 's/\,\}/}/g' -e 's/\}\,/} /g' -e 's/lib.so,/lib/g' | tr ' ' '\n' | awk 'BEGIN{FS=" "} {if(($0~/{[a-z]*.*}/)&&($0!~/,/)) {gsub(/[{,}]/,"");print} else {print}}'