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

Fermé
loic - 28 avril 2003 à 14:31
 deny - 26 sept. 2008 à 16:09
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

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
29 avril 2003 à 10:44
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
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
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
M&M Messages postés 5038 Date d'inscription dimanche 11 août 2002 Statut Contributeur Dernière intervention 3 décembre 2009 667
28 avril 2003 à 14:59
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
29 avril 2003 à 10:40
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
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
M&M Messages postés 5038 Date d'inscription dimanche 11 août 2002 Statut Contributeur Dernière intervention 3 décembre 2009 667
29 avril 2003 à 12:25
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
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 114
29 avril 2003 à 15:15
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
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
29 avril 2003 à 16:00
Bien vu ;)

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