instinctless
Goto Top

Text ersetzen an spezifischer Position in Zeile einer Datei

Ich benötige euer Schwarmwissen.
Ausgangslage ist eine Textdatei mit Inhalt wie:
FOO,GAAGTTGG,CGAACAAC,AN
FOO,GAAGTTGG,CGAACAAC,AN
FOO,GAAGTTGG,CGAACAAC,AN

Es handelt sich hierbei, wie man sich fast denken kann um Baseninformationen. Nun möchte ich die Informationen aus $3 (Trennzeichen ,) pro Zeile ersetzen. Die Basen müssen hierbei reverse komplementär zusammen gebaut werden.

Ich dachte da an so etwas:
tr ACGT TGCA | rev

Das funktioniert grundsätlich auch aber mir ist nicht ganz klar, wie ich das sinnvoll mit 'sed und awk umsetzen kann.

Content-ID: 7724060540

Url: https://administrator.de/contentid/7724060540

Ausgedruckt am: 23.11.2024 um 08:11 Uhr

7426148943
Lösung 7426148943 03.07.2023 aktualisiert um 12:20:43 Uhr
Goto Top
awk -F',' '  
function revcomp(arg) {
    o = ""  
    for(i = length(arg); i > 0; i--)
        o = o c[substr(arg, i, 1)]
    return(o)
}
BEGIN {c["A"] = "T"; c["C"] = "G"; c["G"] = "C"; c["T"] = "A" ; OFS=","}  
{print $1,$2,revcomp($3),$4}
' test.txt >datei_neu.txt  
Zeppel
instinctless
instinctless 03.07.2023 um 12:35:15 Uhr
Goto Top
hervorragend. vielen dank!