2016-03-29 10 views
0

Ich habe eine Datei wie folgtwie drücken -1 in der Datei

-1 1 -1 
2 -1 2 
-1 2 0 

Ich möchte das Element drücken "-1" durch

tr -s '-1' file 

Aber es funktioniert nicht.

ADDED

I vcftools verwenden vcf.gz sich ändern mit dem Element "0" Matrix "1" oder "2" (etwa chr1.012) (fehlenden Wert wird „-1 "). Aber ich fand die Länge jeder Reihe ist anders. Also bezweifle ich, ob es wegen "-1" ist. Also ich möchte "-1" -Element drücken.

+0

Was meinst du mit "Squeeze"? Ersetzen Sie fortlaufende Vorkommen von "-1" durch eine einzelne "-1"? – Mithrandir

+0

@Mithrandir Ich möchte "-1" als eine einzige Zahl behandeln – 81235

+2

Wie sollte Ihre Ausgabe aussehen? – SriniV

Antwort

0

Es wird nicht mit tr arbeiten, denn:

  • -1 wird als Zeichen mit zwei Zeichen - und 1 kein einziges Token -1

  • Auch selbst wenn Sie gesetzt behandelt werden ein einzelnes Zeichen, die Vorkommen müssen benachbart sein, um tr die Squeeze-Operation anwenden

0

können Sie eine ähnliche Funktionalität in sed

$ echo "-1-1-1 2 -1" | sed -r 's/(-1)+/-1/g' 
-1 2 -1 

ersetzt zusammenhängenden Strom von -1 s mit einer Instanz implementieren.