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

Signaler
-
 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

Messages postés
3661
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
855
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.
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 83387 internautes nous ont dit merci ce mois-ci

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 83387 internautes nous ont dit merci ce mois-ci

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 ! :))
Messages postés
5116
Date d'inscription
dimanche 11 août 2002
Statut
Contributeur
Dernière intervention
3 décembre 2009
640
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é !
 :,§_ ç _
(@)=(@)
Messages postés
3661
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
855
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.
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.
Messages postés
5116
Date d'inscription
dimanche 11 août 2002
Statut
Contributeur
Dernière intervention
3 décembre 2009
640
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 ?
 :,§_ ç _
(@)=(@)
Messages postés
1877
Date d'inscription
jeudi 1 novembre 2001
Statut
Membre
Dernière intervention
9 janvier 2008
110
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 ?
jisisv
Messages postés
3661
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
855
Bien vu ;)

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