Commande sous UNIX

Bonjour,

J'ai un fichier ou à l'intérieur j'ai plus ou moins 7000 lignes de 759 caractères sur X colonnes
dans la 2émé colonnes je dois retirer du fichier toutes les lignes qui commence par 2
que je dois re-diriger vers un autre fichier

J'ai essayé avec la commande awk et nawk mais je ne trouve pas la syntaxe

Avez-vous une idée SVP?
Configuration: Windows XP
Firefox 2.0.0.16

4 réponses

  1. Modérateur
    Salut,

    Tu peux afficher un bout du fichier et le résultat escompté histoire qu'on soit bien d'accord ?

    Au cas ou colle ça sur Cjoint ou pastebin.
    1. Contributeur
      Met un exemple de ligne à garder et de lignes à enlever pour qu'on comprenne bien. Sinon, tu as regardé la commande grep avec l'option -v, car cela permet de filtrer tes lignes selon un motif de ligne n'apparaissant pas. Pour ce qui est d'extraire la deuxième colonne, tu peux voir avec un cut -f2 et si ensuite tu dois trouver seulement qui ont la deuxième colonne qui commence par 2, un autre grep pourrait faire l'affaire
      1. Salut

        Voici un exemple de mes lignes

        Bonjour

        Voici un exemple de ligne

        C2 220080910EUREXEXANE
        C2 120080910EUREXEXANE

        Sur la 1ere ligne 2émé colonne elle commence par 2
        sur la 2émé ligne 2émé colonne elle commence par 1

        En gros comme ma 1ere ligne commence par un 2 je dois la supprimer
        mais je dois garder ma 2émé ligne

        Attention
        Les lignes font 759 caractères mais je ne peu pas vous les donnes
    2. Modérateur
      awk '$2 !~ /^2/ {print $0}' fichier > new_fichier
      1. Nickel

        ça fonctionne je te remercie te ton aide
    3. sed -i "/^C2\ 2.*/d" nom_du_fichier


      la methode la plus performante en terme de vitesse c'est celle ci .
      1. J'avais pas vu si tu veux une redirection c'est presque pareil :

        sed -e "/^C2\ 2.*/d" nom_du_fichier > fichier_resultat