Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/08/2020, à 17:46

FalCT60

[Résolu] Lire les n premiers caractères d'un fichier

Bonsoir,
Je bute sur un problème sans doute anodin pour certains, de toute évidence parce que je m'y prends mal.
Je souhaite pouvoir tester les n premiers caractères d'un fichier, sans avoir besoin de charger ledit fichier dans son intégralité.
Parce qu'il peut tout aussi bien s'agir d'un binaire de plusieurs Gio, que d'un résidu de plantage...
Du coup, les méthodes basées sur la lecture de la première ligne ne sont pas forcément adaptées.
Quelles sont les commandes à utiliser pour parvenir à mes fins ?
Merci d'avance,
J.-Luc

Dernière modification par FalCT60 (Le 13/08/2020, à 19:53)

Hors ligne

#2 Le 08/08/2020, à 18:09

Watael

Re : [Résolu] Lire les n premiers caractères d'un fichier

salut,

tu pourrais tester d'abord le type mime (avec file) du fichier...

Dernière modification par Watael (Le 08/08/2020, à 18:10)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 08/08/2020, à 18:59

pingouinux

Re : [Résolu] Lire les n premiers caractères d'un fichier

Bonjour,
Pour lire les 25 premiers caractères, par exemple :

head -c 25 fichier | hd

Hors ligne

#4 Le 08/08/2020, à 19:03

kamaris

Re : [Résolu] Lire les n premiers caractères d'un fichier

Qu'est ce que tu entends par « tester les n premiers caractères d'un fichier » ?
En première approche, tu peux regarder ce que te renvoie

hexdump -Cn N fichier

où N est le nombre d'octets de fichier à afficher (cf. man hexdump).

Hors ligne

#5 Le 08/08/2020, à 19:04

gigiair

Re : [Résolu] Lire les n premiers caractères d'un fichier

S'il ne s'agit pas d'un fichier de texte, ça risque de ne pas être d'un très grand intérêt.


--
JJR.

Hors ligne

#6 Le 08/08/2020, à 21:13

FalCT60

Re : [Résolu] Lire les n premiers caractères d'un fichier

Ah ! mauvaise compréhension de ma part ? La commande head peut donc faire l'affaire...
Je ne sais pourquoi, j'avais compris qu'il fallait indiquer une ligne, puis effectuer le test sur cette même ligne.
Du coup, je me prenais la tête pour rien ?
Je vais tenter de mettre ça en pratique, puis je reviendrai par ici.
Merci, à+

Hors ligne

#7 Le 10/08/2020, à 16:56

FalCT60

Re : [Résolu] Lire les n premiers caractères d'un fichier

Bien, bien... j'ai quelque peu avancé dans ma quête.
J'explore une arborescence et lis chaque fichier dans la variable f - j'aurais pu choisir autre chose.
Puis, j'affiche le chemin du fichier, ainsi que le résultat de la commande head. Première étape, afin de me prémunir de surprises.
Cela donne (j'aime bien la commande find) :

find -iname '*.jpg' -type f -print0 | while read -r -d '' 'f'
do
printf '%s;%s\n' "$f" "$(head -c 4 "$f")" >> sortie_texte
done

Le comportement avec les noms de fichiers contenant des espaces ou des virgules m'a obligé à protéger le $f de la commande head, et j'ai toujours des comportements étranges lorsque les premiers octets sont des zéros ou des caractères exotiques, mais ça commence à prendre tournure.
Seul bémol, j'aurais bien aimé pouvoir tester deux types de fichiers en particulier, mais la commande

find \(-iname '*.jpg' -o -iname '*.tif'\) -type f -print0 ...

m'envoie sur les roses. C'est pourtant pris dans les exemples de la commande find.

Hors ligne

#8 Le 10/08/2020, à 17:21

pingouinux

Re : [Résolu] Lire les n premiers caractères d'un fichier

Il manque des espaces.

find \( -iname '*.jpg' -o -iname '*.tif' \) -type f -print0 ...

Hors ligne

#9 Le 13/08/2020, à 19:53

FalCT60

Re : [Résolu] Lire les n premiers caractères d'un fichier

Mais quelle andouille, de n'y avoir pas pensé ! roll
Merci beaucoup.

Hors ligne