Wenn perl
Lösung in Ordnung ist:
Modified Abtastwerteingang relevanter Fälle hinzuzufügen ..
$ cat ip.txt
group1:*:100:bat,cat,zat,ratt
group2:*:200:rat,cat,bat
group3:*:300:rat
group4:*:400:mat,rat,sat
group5:*:500:pat,rat
$ perl -F: -lane '(@a) = split/,/,$F[3]; $F[3] = join ",", grep { $_ ne "rat" } @a; print join ":", @F' ip.txt
group1:*:100:bat,cat,zat,ratt
group2:*:200:cat,bat
group3:*:300:
group4:*:400:mat,sat
group5:*:500:pat
-F:
geteilte Eingangsleitung auf :
und -
@F
Array speichern
(@a) = split/,/,$F[3]
Split 4. spalte auf ,
und speichere auf @a
array
$F[3] = join ",", grep { $_ ne "rat" } @a
Elemente in @a
Array entfernen genau rat
passend, diese Elemente mit ,
verbinden und 4. Bereich der Eingangsleitung
print join ":", @F
Druck die modifizierten @F
Arrayelemente verbunden durch :
Golfing modifizieren, um die Temperatur zu vermeiden, array @a
$ perl -F: -lane '$F[3] = join ",", grep { $_ ne "rat" } split/,/,$F[3]; print join ":", @F' ip.txt
Mit Regex am 4. Spalte:
$ perl -F: -lane '$F[3] =~ s/,rat\b|\brat(,|\b)//g; print join ":", @F' ip.txt
group1:*:100:bat,cat,zat,ratt
group2:*:200:cat,bat
group3:*:300:
group4:*:400:mat,sat
group5:*:500:pat
Sundeep wie kann ich das in Schleife tun, müssen wir 100 Namen aufräumen –
hab es, 'perl -i -F: -lane '(@a) = Split /, /, $ F [3]; $ F [3] = join ",", grep {$ _ne "Ratte"} @a; print join ":", @F 'Gruppe1' –