[Unix] 4 derniers caractères d'un fichier

loic -  
 deny -
Bonjour,

J'ai un fichier sous unix et j'aimerai récupérer les 4 derniers caractères, comment faire ?

ex : toto_titi (je veux titi)

7 réponses

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    Hello,
    OK , je cherche ici les 4 derniers caractères du fichier.
    Ceci doidevrait te convenir

    [johand@zoot] ~ $filename=un_fichier
    [johand@zoot] ~ $echo $filename|rev| cut -b 1-4|rev
    [johand@zoot] ~ $echo $filename|rev| cut -b 1-4|rev
    hier

    Johan
    The software said "Requires Windows98, Win2000, or better,
    So I installed Unix.
    3
  2. deny
     
    soit le nom de fichier /rep1/rep2/rep3/abcdefghFA.sh

    basename "/rep1/rep2/rep3/abcdefghFA.sh" ".sh"|rev|cut -c 1,4|rev

    detail: basename ne garde que le nom du fichier (enlève les repertoires contrairement à dirname) et ici on lui demande aussi d'enlever l'extension ".sh", puis on retourne la chaine (rev), on coupe les premiers caracteres souhaités, puis on retourne la chaine dans le bon sens.
    2
  3. foobar47
     
    Salut
    Tu fais le total de caractères que contient ton fichier, puis tu les range dans un tableau, puis tu prend les 4 dernières cases de ton tableau .
    ;))
    Voili voilou ! :))
    1
  4. M&M Messages postés 5058 Statut Contributeur 669
     
    Tu devrais facilement y arriver en combinant adroitemement deux ou trois commandes unix tail, sed, grep ou awk . Par exemple :
    tail -1 file | awk '{print /....$/}'
    (mais je n'ai pas la possibilité de le tester ici) et le tour est joué !
     :,§_ ç _
    (@)=(@)
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jisisv Messages postés 3678 Statut Modérateur 936
     
    Hello, tu peux t'amuser avec quelques pipes

    tail -1 myfile |rev |cut -b 1-4|rev

    Johan
    The software said "Requires Windows98, Win2000, or better,
    So I installed Unix.
    1
    1. loic
       
      Merci pour ta réponse mais avec cette commande tu récupère les 4 derniers caractères de la ligne dans le fichier hors moi je veux les 4 derniers caractères du nom du fichier.
      0
  7. M&M Messages postés 5058 Statut Contributeur 669
     
    Ah loic, je vois pourquoi on m'a bloqué ma réponse sur le forum programmation: c'ets que tuavais demandé deux fois presque le même chose de deux côtés. j'ai perdu le long texte que je t'avais pondu dans l'affaire, du temps précieux perdu, je vais essayer de t'aider avec ceci:

    tu tapes un truc du genre
    ls | awk {print substr($0,length($0)-3)}


    Je proposais aux lecteurs un petit exercice de programmation sous DOS:
    Comment extraire l'extension des noms de fichiers dans un répertoire ?
    Je propose d'aller chercher deux outils unix compilés pour les PCs en DOS : gsed205b.zip sur http://www.simtel.net/pub/pd/37207.html et awk320.zip sur
    http://www.simtel.net/pub/pd/51371.html

    Je propose ces deux lignes
    dir /b | sed s/[^\.]*\.//g

    Mais il donne le nom complet s'il n'y a pas de point dans le nom, alors
    dir /b | awk "{match($0,/\./); if (RSTART>0) {print substr($0,RSTART+1)}"

    Quelqu'un a plus court ?
     :,§_ ç _
    (@)=(@)
    1
  8. batmat Messages postés 1880 Date d'inscription   Statut Membre 114
     
    Oui tintttttttttttin

    Regardez la doc de tail ;-) cette commande a un mode caractère ;-)

    $tail -cN nomfichier

    avec N le nombre de caractère que tu veux.

    @++

    Vous hésitez entre Linux et Windows?
    Vous voulez dépenser du temps ou de l'argent ?
    1
    1. jisisv Messages postés 3678 Statut Modérateur 936
       
      Bien vu ;)

      Johan
      The software said "Requires Windows98, Win2000, or better,
      So I installed Unix.
      0