Die Eingabe Ich habe mehrere Strings ersetzen ist:Wie mit dem gleichen Muster ab der gleichen Linie
blabla 0/1: 0,1,0: 1 1/1: 0,0,1.000 : 2 0/0: 1,0,0: 0 1/0: 0,0.943,0.057: 1.057 blabla
Der Ausgang ich will, ist:
blabla RA AA RR blabla RA
Jeder Eintrag/String wird durch Tabulator getrennt. Und alle Einträge/Strings sind in derselben Zeile.
Ich zeige oben nur vier Einträge als Beispiel, es gibt Hunderte anderer Einträge dort mit ähnlichen Mustern, die ich suche. Das heißt jeder String beginnt mit 0/1, 1/0, 1/0 oder 1/1.
ich die Zeichenfolge beginnend mit 0/1
oder 1/0
-RA
ersetzen möchten, starten die Zeichenfolge mit 0/0
-RR
und die Zeichenfolge beginnend mit 1/1
-AA
.
Der Code, den ich jetzt bin mit ist
echo blabla 0/1:0,1,0:1 1/1:0,0,1.000:2 0/0:1,0,0:0 1/0:0,0.943,0.057:1.057 blabla | sed -e "s/0\/0/RR/g" -e "s/0\/1/RA/g" -e "s/1\/0/RA/g" -e "s/1\/1/AA/g"
jedoch der Ausgang
blabla RA:0,1,0:1 AA:0,0,1.000:2 RR:1,0,0:0 RA:0,0.943,0.057:1.057 blabla
Ich habe auch versucht den folgenden Code
echo blabla 0/1:0,1,0:1 1/1:0,0,1.000:20/0:1,0,0:0 1/0:0,0.943,0.057:1.057 blabla | sed -e "s/0\/0:.*\\t/RR\\t/g" -e "s/0\/1:.*:\\t/RA\\t/g" -e "s/1\/0:.*\\t/RA\\t/g" -e "s/1\/1:.*\\t/AA\\t/g"
Es scheint gar nicht funktioniert .
Oops ersetzen können, vergessen Sie Ihren Code zu schreiben. StackOverflow hilft Leuten, ihren Code zu reparieren. Es ist kein kostenloser Kodierungsdienst. Jeder Code ist besser als gar kein Code. Bitte lesen Sie http://stackoverflow.com/help/how-to-ask, http://stackoverflow.com/help/dont-ask, http://stackoverflow.com/help/mcve und nehmen Sie die [Tour] (http://stackoverflow.com/tour), bevor Sie hier weitere Fragen stellen. Viel Glück. – shellter
Sie sagen, Sie wollen '0/1' oder' 1/0' durch 'RA' ersetzen, aber es scheint, dass Sie' 0/1: 0,1,0: 1' durch 'RA' ersetzt haben. Wollen Sie sagen, dass Sie eine beliebige Zeichenfolge, die aus Nicht-Leerzeichen besteht, die mit '0/1' oder' 1/0' beginnen, durch 'RA' ersetzen wollen, oder nur an Zeichenfolgen interessiert sind, die zu 0/1 passen? : 01,] * oder '1/0 [: 01,] *'? Was ist wenn 'blabla'' 0/1text: 0: 1' ist? Was wirst du mit '2/1: 0,1' machen? Die Frage ist schlecht spezifiziert. –
Ich habe meinen Code dort eingefügt, Entschuldigung für das Missverständnis. Ich möchte, dass eine beliebige Zeichenfolge, die aus Nicht-Leerzeichen besteht, die mit 0/1 oder 1/0 beginnen, durch RA ersetzt wird, mit 0/0 beginnt, durch RR ersetzt wird, beginnt mit 1/1, um durch AA ersetzt zu werden. Alle Strings beginnen mit 0/1, 1/0, 0/0 oder 1/1. @ WilliamPursell – fsns