kurze reg expressions frage.

flappinski

flappinski

Foren As
an die sed -freaks:
ich will die vierte Spalte (TAB-delim) mit rs beginnen, wenn sie mit einer Zahl beginnt. E§s funktioniert alles bis auf [:digit:]. Da muss ich doch bestimmt irgendwas machen. Kann mir jemand helfen?

sed 's/\t[:digit:]/\trs/3'


ich denke, mal die smlileys könnt ihr euch rausdenken?
 
:]

Solltest du nicht ein

Code:
awk '{print $4}' filename
voranstellen und darauf dann dein sed drauf anwenden?
 
naja, dabei verliere ich ja die ersten 3 spalten, oder?

o.k. hier ein Beispiel:

rein:
chr1 86900379 86900380 100002
chr16 5749083 5749084 1000041
chr1 86904027 86904028 rs100008
chr1 86906492 86906493 rs100016


raus:
chr1 86900379 86900380 rs100002
chr16 5749083 5749084 rs1000041
chr1 86904027 86904028 rs100008
chr1 86906492 86906493 rs100016


mein erstes Beispiel findet zwar das richtige TAB, aber ersetzt die folgende Zahl mit.
Im Moment so gelöst:

grep rs FILENAME | sed 's/\t/\trs/3' > temp
grep rs FILENAME >> temp
mv temp FILENAME

geht aber bestimmt eleganter, oder?
 
Hallo

Du hast nur eine eckige Klammer vergessen:
Code:
sed 's/\t[[:digit:]]/\trs/3'
so sollts gehen...
Und sonst, wenn dein 'sed' keine POSIX-Character-Classes unterstützt kannst du auch so machen:
Code:
sed 's/\t[1234567890]/\trs/3'
#bzw
sed 's/\t[0-9]/\trs/3'
nicht elegant aber geht auch...

Grüsse
d22
 
danke, das hatte ich allerdings inzwischen dann auch geschafft (also das mit [0-9]). ABER: leider wird diese erste Zahl mit gelöscht. und mit & gehts auch nicht, weil rs soll ja zwischen das TAB und die Zahl.
Wisst Du weiter?
Danke,
Stephan
 

Ähnliche Themen

suchen und ersetzen, Format erhalten

Last mit etc/passwd anzeigen lassen

Dateinamen kürzen/ändern

Update / Installation von Paketen unter suse 11.1 schlägt neurdings fehl

1000 Fragen...

Zurück
Oben