Rechercher : dans
Par :

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

Dernière réponse le 26 sep 2008 à 16:09:23 loic, le 28 avr 2003 à 14:31:32 
 Signaler ce message aux modérateurs

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)

Meilleures réponses pour « [Unix] 4 derniers caractères d'un fichier » dans :
Sed - Conversion retours chariots DOS (CRLF) / UNIX (LF) VoirConversion format de fichier DOS UNIX / UNIX DOS Préambule Ce qu'il faut savoir Conversion DOS vers UNIX Conversion UNIX vers DOS Préambule Il existe déjà des utilitaires (dos2unix et unix2dos) qui s'acquittent très bien ce...
Utiliser des accents et autres caractères spéciaux VoirDans la plupart des langages de programmation, on ne peut utiliser directement les accents et autres caractères non-anglosaxon. La solution est l'unicode, une sorte de code universel. Par exemple pour afficher la chaine de caractères : " là, ça...
[Linux] Compresser/Décompresser un fichier ZIP VoirLes fichiers ZIP sont généralement destinés à un usage sous Microsoft Windows. Le format de compression privilégié sous Linux est GZip (.gz) ou le format Tarball (.tar.gz). Il est néanmoins possible de compresser et décompresser des fichiers ZIP à...
UNIX - Les fichiers VoirIntroduction aux fichiers Unix Sous les systèmes UNIX tout élément est représenté sous forme de fichier. L'ensemble des fichiers est architecturé autour d'une unique arborescence dont la base, appelée racine, est notée «/». Types de...
Commandes UNIX VoirTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...
Le protocole FTP (File Transfer Protocol) VoirIntroduction au protocole FTP Le protocole FTP (File Transfer Protocol) est, comme son nom l'indique, un protocole de transfert de fichier. La mise en place du protocole FTP date de 1971, date à laquelle un mécanisme de transfert de...

1

foobar47, le 28 avr 2003 à 14:37:57

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 ! :))

Répondre à foobar47

2

M&M, le 28 avr 2003 à 14:59:43

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é !
 :,§_ ç _
(@)=(@)

Répondre à M&M

3

jisisv, le 29 avr 2003 à 10:40:06

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.

Répondre à jisisv

5

loic, le 29 avr 2003 à 10:45:49

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.

Répondre à loic

4

jisisv, le 29 avr 2003 à 10:44:51

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.

Répondre à jisisv

6

M&M, le 29 avr 2003 à 12:25:37

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 ?
 :,§_ ç _
(@)=(@)

Répondre à M&M

7

batmat, le 29 avr 2003 à 15:15:56

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 ?

Répondre à batmat

8

jisisv, le 29 avr 2003 à 16:00:20

Bien vu ;)

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

Répondre à jisisv

9

 deny, le 26 sep 2008 à 16:09:23

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.

Répondre à deny
Collection CommentÇaMarche.net