2016-08-27 6 views
0

Ich habe eine Datei Leerzeichen getrennt, die wie folgt aussieht: stattentfernen Leerzeichen am Anfang der zweiten Spalte

12 12.57428314.57490104 ENSG00000065361 rs2271194 rs61939899 
2 2.198148577.198835577 ENSG00000065413 rs4524134 rs2697288 rs6738721 
6 6.84279922.84407274 ENSG00000065609 rs2016358 rs35791305 
10 10.104585135.104956335 ENSG00000065613 rs72811696 

Ich möchte das führende Leerzeichen aus der zweiten Säule entfernen (es gibt zwei Leerzeichen Trennsäulen 1 und 2 von einem Leerzeichen). Kennt jemand einen sed oder awk Befehl dafür?

Antwort

2

Mit Schnitt:

cut -d " " -f 1,3- file 

Ausgang:

 
12 12.57428314.57490104 ENSG00000065361 rs2271194 rs61939899 
2 2.198148577.198835577 ENSG00000065413 rs4524134 rs2697288 rs6738721 
6 6.84279922.84407274 ENSG00000065609 rs2016358 rs35791305 
10 10.104585135.104956335 ENSG00000065613 rs72811696 
1

tr -s (oder tr --squeeze-repeats) werden doppelte Zeichen entfernen. So können Sie, wenn Sie alle wiederholt Räume ersetzen möchten, können Sie schreiben:

tr -s ' ' < input-file > output-file 

Eingang:

12 12.57428314.57490104 ENSG00000065361 rs2271194 rs61939899 
2 2.198148577.198835577 ENSG00000065413 rs4524134 rs2697288 rs6738721 
6 6.84279922.84407274 ENSG00000065609 rs2016358 rs35791305 
10 10.104585135.104956335 ENSG00000065613 rs72811696 

Ausgang:

12.57428314.57490104 ENSG00000065361 rs2271194 rs61939899 
2 2.198148577.198835577 ENSG00000065413 rs4524134 rs2697288 rs6738721 
6 6.84279922.84407274 ENSG00000065609 rs2016358 rs35791305 
10 10.104585135.104956335 ENSG00000065613 rs72811696 
1

Mit GNU sed, ersetzt mehr als eine weiße -Zeichen mit Leerzeichen nach der ersten Spalte

Für andere Versionen verwenden

  • [[:space:]] für \s
  • [^[:space:]] für \S

oder :blank: (Leerzeichen und Tabulatoren) statt :space: (white-space Zeichen)

1

Dieses AWK ersetzt alle Vorkommen von aufeinanderfolgenden SP Leerzeichen Asse mit:

$ awk 'gsub(/ +/," ")' file 
12 12.57428314.57490104 ENSG00000065361 rs2271194 rs61939899 
2 2.198148577.198835577 ENSG00000065413 rs4524134 rs2697288 rs6738721 
6 6.84279922.84407274 ENSG00000065609 rs2016358 rs35791305 
10 10.104585135.104956335 ENSG00000065613 rs72811696 
1

Entfernen Sie einfach den ersten Raum aus jeder Zeile:

$ sed 's/ //' file 
12 12.57428314.57490104 ENSG00000065361 rs2271194 rs61939899 
2 2.198148577.198835577 ENSG00000065413 rs4524134 rs2697288 rs6738721 
6 6.84279922.84407274 ENSG00000065609 rs2016358 rs35791305 
10 10.104585135.104956335 ENSG00000065613 rs72811696 
+1

einfach und süß –

Verwandte Themen