"Zahlersetzung"

S

speeder84

Grünschnabel
Hallo alle Shell Profis :D !!

Ich habe folgendes Problem und möchte dieses per Shell Skript lösen:

Ich habe eine Datei mit vielen Zeilen. Jede Zeile halt Spalten die per Komma getrennt sind. In der 1. Spalte stehen Namen, wie zum Beispiel ABBSS0112 und danach stehen viele von Komma getrennte Werte. Ich möchte diese Werte normalisieren, d.h. alle Werte die kleiner 30 (auch "Minus") sollen durch 30 ersetzt werden und alle die größer als 100 sollen durch 100 ersetzt werden. Die erste Zeile soll außerdem so bleiben wie sie ist.

Beispielzeile:

ABBSS0112,-43,5439,89,932,1,31,30,100

aus dieser soll dann folgendes werden:

ABBSS0112,30,100,89,100,30,31,30,100

Ich habe schon verschiedenes probiert, wie zum Beispiel sed, aber ich hatte immer das Problem, dass wenn ich die "," mit in den zu suchenden String eingeben habe, hat er nur jeden 2. Wert ersetzt!? :think:

Da habe ich gedacht, das es womöglich mit awk, oder sowas in der Art besser geht, aber da bin ich bis heute nicht geschafft.

Ich bin für jede Hilfe dankbar. :))

MFG
Speeder
 
Zuletzt bearbeitet:
Hallo
Auch hier wieder viele Möglichkeiten.
Ich greif mal einen Perleinzeiler raus. ;)
Wenn
cat test

Kopfdaten der ersten Zeile
ABBSS0112,-43,5439,89,932,1,31,30,100
ABBSS0112,20,5439,89,932,1,-31,30,100
ABBSS0112,20,5439,89,932,1,-31,30,500
ABBSS0115,20,5439,89,932,1,-31,30,500

ausgibt
dann sollte der...
Code:
perl -a -F, -nle '($.>1)?print shift @F,",",join",",map{($_<30)?30:($_>100)?100:$_}@F:print $_' test


Kopfdaten der ersten Zeile
ABBSS0112,30,100,89,100,30,31,30,100
ABBSS0112,30,100,89,100,30,30,30,100
ABBSS0112,30,100,89,100,30,30,30,100
ABBSS0115,30,100,89,100,30,30,30,100

ausgeben.
Ist es das was du wolltest?

Gruß Wolfgang
 
Perfekt :)) !! Genau das was ich wollte in einer Zeile. Vielen Dank Wolfgang

Aber ich habe das noch nicht ganz verstanden was die ganzen Parameter machen. Könntest du das vielleicht kurz erklären? Das wäre echt toll.

Gruß
 
Zuletzt bearbeitet:

Ähnliche Themen

Zeilen aus Txt-Datei entfernen, wenn eine Spalte einen bestimmten Wert enthält

Spalten einer Datei in neue Datei integrieren.

Keine grafische Oberfläche (Debian Installation)

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

Werte aus Dateien lesen

Zurück
Oben