Comment puis-je "redémarrer" par programme une application Android?

linux – Comment trouver des fins de lignes dans un fichier texte?

Je dois parfois vérifier cela pour les fichiers de certificat PEM.

Le problème avec le fichier normal est ceci: Parfois, il essaie d'être trop intelligent / trop spécifique.

Essayons un petit quiz: j'ai des fichiers. Et l'un de ces fichiers a des fins de ligne différentes. Laquelle?

(À propos: voici à quoi ressemble l'un de mes répertoires typiques de "travail de certificat".)

Essayons le fichier régulier:

$ fichier – *
0.example.end.cer: certificat PEM
0.example.end.key: clé privée PEM RSA
1.example.int.cer: certificat PEM
2.example.root.cer: certificat PEM
example.opensslconfig.ini: texte ASCII
example.req: demande de certificat PEM

Huh. Cela ne me dit pas les fins de ligne. Et je savais déjà que c'étaient des fichiers de cert. Je n'avais pas besoin de "fichier" pour me le dire.

Quoi d'autre pouvez-vous essayer?

Vous pouvez essayer dos2unix avec le commutateur –info comme ceci:

$ dos2unix –info – *
  37 0 0 no_bom text 0.example.end.cer
   0 27 0 no_bom text 0.example.end.key
   0 28 0 no_bom text 1.example.int.cer
   0 25 0 no_bom text 2.example.root.cer
   0 35 0 no_bom text example.opensslconfig.ini
   0 19 0 no_bom text example.req

Donc, ça vous dit que: ouais, "0.example.end.cer" doit être l'homme étrange à l'extérieur. Mais quel genre de fins de lignes existe-t-il? Connaissez-vous le format de sortie dos2unix par cœur? (Je ne.)

Mais heureusement, il existe l'option –keep-going (ou -k en abrégé) dans le fichier:

$ file –keep-going – *
0.example.end.cer: certificat PEM 012-, texte ASCII, avec terminaisons de ligne CRLF 012- données
0.example.end.key: clé privée PEM RSA 012-, texte ASCII 012- données
1.example.int.cer: certificat PEM 012-, texte ASCII 012- données
2.example.root.cer: certificat PEM 012-, texte ASCII 012- données
example.opensslconfig.ini: texte ASCII 012- données
example.req: demande de certificat PEM 012-, texte ASCII 012- data

Excellent! Nous savons maintenant que notre fichier impair a des fins de ligne DOS (CRLF). (Et les autres fichiers ont des fins de ligne Unix (LF). Ce n'est pas explicite dans cette sortie. C'est implicite. C'est juste la façon dont le fichier s'attend à un fichier texte "normal".)

(Si vous voulez partager mon mnémonique: "L" est pour "Linux" et pour "LF".)

Convertissons maintenant le coupable et essayons à nouveau:

$ dos2unix – 0.example.end.cer

$ file –keep-going – *
0.example.end.cer: certificat PEM 012-, texte ASCII 012- données
0.example.end.key: clé privée PEM RSA 012-, texte ASCII 012- données
1.example.int.cer: certificat PEM 012-, texte ASCII 012- données
2.example.root.cer: certificat PEM 012-, texte ASCII 012- données
example.opensslconfig.ini: texte ASCII 012- données
example.req: demande de certificat PEM 012-, texte ASCII 012- data

Bien. Désormais, tous les certificats ont des fins de ligne Unix.

Lectures complémentaires

Posts created 13682

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Articles similaires

Commencez à saisir votre recherche ci-dessus et pressez Entrée pour rechercher. ESC pour annuler.