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-Key: 7724060540

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

Printed on: April 28, 2024 at 05:04 o'clock

Mitglied: 7426148943
Solution 7426148943 Jul 03, 2023 updated at 10:20:43 (UTC)
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
Member: instinctless
instinctless Jul 03, 2023 at 10:35:15 (UTC)
Goto Top
hervorragend. vielen dank!