2016-04-23 10 views
0

Also habe ich diese Zeile als Beispiel. Dies ist ein Label für meine Daten: d__Bacteria | p__Proteobacteria | c__Betaproteobacteria | o__Burkholderiales | f__Alcaligenaceae | g__AdvenellaVerkürzung meiner Datenetiketten

alle Etiketten meiner Daten in diesem Format sind. Was ich tun möchte, ist nur die meisten davon zu entfernen, den letzten Teil, der die g__Advenella ist. Ich bin ziemlich noob und in Eile, so würde es mir eine Menge Zeit ersparen, wenn Sie mir helfen können. Ich habe die Labels meiner Daten bereits extrahiert und in einer Textdatei gespeichert.

+0

ein grundlegender 'sed -i.bak 's /^.* | (. * G $ \) \/\ 1 /' filename' wäre es an Ort und Stelle tun. –

Antwort

0

Verwenden Sie Perl, Sed oder Awk.

Perl

perl -pe 's/^.*\|([^\|]+)$/\1/' input-file > output-file 

SED

sed -r 's/^.*\|([^\|]+)$/\1/' input-file > output-file 

AWK

awk 'BEGIN{ FS="|"; } {print $NF}' input-file > output-file 

P ure Bash

while read -r line; do 
    echo ${line/*|/} 
done < input-file > output-file 
+0

Wow. Du bist fantastisch. Vielen Dank! –