Comment supprimer une ligne spécifique à partir d'un fichier sous unix?
J'ai un très gros fichier à partir de laquelle j'ai besoin de supprimer une ligne spécifique (numéro de ligne 941573 )
Je suis un peu nouveau pour ce milieu, mais j'ai été googler le problème en vain.
J'ai essayé d'utiliser la commande sed en tant que telle, mais cela ne semble pas être travail
sed -e '941572,941574d' filenameX > newfilenameY
J'ai aussi essayé de
sed -e '941573d' filenameX > newfilenameY
Pourtant les " newfilenameY fichier et le fichier d'origine 'filenameX" les deux contiennent encore de la ligne que je suis en train de supprimer. C'est un fichier fastq, mais je ne vois pas comment cela pourrait faire toute la différence. Comme je l'ai dit je suis nouveau sur unix, donc peut-être que j'ai obtenu la commande sed mal
J'ai juste essayé cette approche (avec un fichier beaucoup plus petit) et tout semble fonctionner. Peut-être que vous voulez vérifier ?
J'ai, tout à fait à quelques reprises
Je vous suggère d'exécuter
J'ai, tout à fait à quelques reprises
Je vous suggère d'exécuter
sed -ne '941573p' filenameX
pour voir si sed est à compter les numéros de ligne de la façon dont vous l'attendez.OriginalL'auteur John Smith | 2012-10-22
Vous devez vous connecter pour publier un commentaire.
d
supprime une ligne ou des lignes. Ainsi, votre deuxième approche fonctionne.Long Exemple:
Court Exemple:
Il n'y a pas de différence. La deuxième approche de l'OP œuvres.
Qu'est ce que je pensais
La deuxième approche ne fonctionne pas, les gars, j'ai essayé ce matin :/
Votre question est incomplète. Comme vous pouvez le voir dans mes deux exemples,
d
œuvres. Quelles sont les informations manquantes à partir de votre question?OriginalL'auteur
Voici comment faire pour supprimer une ou plusieurs lignes d'un fichier.
Syntaxe:
OriginalL'auteur user1746291
J'ai généré un fichier de test avec 1000000 lignes et essayé votre
sed -e '941573d' filenameX > newfilenameY
et il a bien fonctionné sur Linux.Nous avons peut-être quelques autres à un malentendu. Les numéros de ligne, comte de, pas de zéro. Si vous compté à partir de zéro, alors vous devez trouver la ligne 941572 manquait.
Avez-vous essayer un
diff filenameX newfilenameY
? De détecter les changements inattendus.Je ne connais pas trop le format FASTQ, mais êtes-vous sûr que nous parlons de fichier texte, les numéros de ligne, et pas des numéros de séquence?
Il y a une ligne générale de limite de longueur de 4096 octets, utilisez l'une de vos lignes dépasser? (C'est peu probable, mais je pensais que cela en vaut la question).
OriginalL'auteur cdarke