J'ai un fichier appelé non-classifié. Un exemple de celui-ci ressemble à ceci (chacun est sur une nouvelle ligne): J'ai un autre fichier appelé Otucounts. Un échantillon de celui-ci ressemble à ceci p> Comment puis-je rechercher le fichier otUCounts et supprimer l'OTUS répertorié dans le fichier non classifié, à Ultimatley se retrouver avec un nouveau fichier à ressembler Otucounts mais avec lesclassifications supprimées? P> J'ai commencé à utiliser: p> mais je sais qu'il a besoin de plus ajouté - Je suis assez nouveau à cela. p> Des idées? P> P>
4 Réponses :
Vous pouvez utiliser awk code> et stocker les champs OTU de
non classifié code> dans un tableau. Quand
otucounts code> est lu, test si le premier champ
est présent dans le tableau. Si cela est vrai, puis définissez un drapeau et sautez les lignes suivantes jusqu'à ce que la prochaine OTU soit trouvée. Puis réinitialisez le drapeau.
awk '
NR==FNR{ # if this is the first file...
a[$1] # save the first field in array `a` as array index
next # continue with the next line
}
$1 in a{ # if the first field is present in array `a`
skip=1 # set a flag to skip the next lines
next # continue with the next line
}
skip{ # if the flag is set
if (/^OTU/){ # if this is the next OTU
skip=0 # reset the flag
print # print the current line
}
next # continue with the next line
}
1 # print the current line
' unclassified OTUcounts > newOTUcounts
Essayez d'utiliser l'option V code> de
grep code>: p>
grep -v -f non classifié itucounts> NewoCounts code> p>
Nous pouvons en effet le faire avec seulement grep code>, en générant d'abord une liste des OTU à garder, puis à l'aide de l'option
- après-contexte code> pour imprimer le trois lignes de contexte; Enfin, nous devons retirer la ligne contenant un séparateur de groupe (-) que
grep code> entre des groupes contigus de matchs.
une approche alternative qui utilise GNU sed code> (et une coque comme
Bash code> ou
zsh code> qui comprend
Redirection):
gsed -f <(while read otu; do echo "/^>${otu}\$/,+2d"; done < unclassified) OTUcounts > newOTUcounts
Qu'entendez-vous par « chacun recouvre 4 lignes i>»? Les éditeurs ont-ils gâché votre
OTUCOUTS code> échantillon?
Sont le
> code> réellement contenu dans le fichier
ict code>?
La question que celle-ci était marquée comme un duplicata est sur la sélection des entrées correspondant à un autre fichier, ne supprimant pas les entrées correspondant, comme celle-ci. L'objectif exact opposé, en d'autres termes.