Détectez les fins de ligne d’un fichier : LF, CRLF ou mixtes
Sachez quelles fins de ligne un fichier utilise vraiment : alpha, beta et gamma terminées par CRLF donnent le style CRLF avec 3 sauts et 0 LF isolé, et un seul saut différent suffit à déclarer le fichier mixte. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- alpha beta gamma
- Total
- 3
- Style
- CRLF
Examinez le texte brut d’un fichier et identifiez sa convention de fin de ligne sans modifier son contenu. Le détecteur compte les LF isolés et les paires CRLF de Windows, puis indique si le fichier emploie LF, CRLF ou les deux. Déterministe et indépendant du langage, il convient au code source, aux configurations, aux journaux, aux exports et aux textes générés. En l’absence de fin de ligne reconnue, il renvoie une erreur d’entrée claire au lieu de produire une supposition, ce qui rend le résultat fiable pour vos validations et automatisations.
Fournissez le texte brut tel qu’il apparaît
Envoyez le contenu intégral du fichier dans le champ text. Les fins de ligne sont invisibles dans la plupart des éditeurs ; copier depuis une application qui les normalise silencieusement peut donc changer ce que reçoit le détecteur. Pour un résultat fiable, lisez le fichier comme du texte en préservant ses caractères d’origine, puis transmettez directement cette chaîne.
Aucun nom de fichier, langage, encodage ou système d’exploitation n’est requis, car la capacité inspecte les caractères eux-mêmes. Une fin de ligne Windows est la séquence de deux caractères retour chariot et saut de ligne, appelée CRLF. Une fin de ligne de type Unix est un saut de ligne isolé, appelé LF.
L’analyseur traite chaque paire CRLF comme une seule fin et ne recompte pas son caractère LF. Il compte aussi une fin terminale lorsqu’elle existe, puisqu’elle appartient au fichier fourni. Une chaîne vide ou un texte d’une seule ligne sans LF ni CRLF renvoie une erreur : aucune convention ne peut être déduite.
Interprétez le style et les compteurs
La réponse comprend style, un objet de compteurs et le total des fins reconnues. L’objet distingue lf de crlf, ce qui rend les preuves de la classification explicites. Si au moins un LF apparaît sans aucune paire CRLF, le style vaut LF.
Si au moins une paire CRLF apparaît sans LF isolé, il vaut CRLF. Lorsque les deux compteurs sont supérieurs à zéro, le style est mixte, même si une convention domine largement. Cette définition stricte est volontaire : une seule fin incohérente peut perturber les formateurs, correctifs, linters, instantanés et règles de dépôt, tandis qu’une simple majorité masquerait une information utile.
Le total correspond à la somme des deux compteurs ; vous pouvez l’utiliser comme contrôle ou comme dénominateur d’un pourcentage. Ces nombres décrivent des séquences de fin, non des lignes logiques. Selon la présence d’une fin terminale, le fichier peut comporter une ligne logique de plus que le total.
Détectez avant de normaliser ou de valider
La détection est surtout utile avant qu’un autre outil ne réécrive le fichier. Un contrôle avant commit peut refuser des fins mixtes, un script de migration peut choisir une règle de normalisation et une chaîne de compilation peut expliquer pourquoi un artefact diffère selon le système. Le détecteur se limite à constater : il ne convertit pas CRLF en LF, n’ajoute pas de fin terminale, ne modifie aucun contenu, n’ouvre aucun dépôt et n’écrit aucun fichier.
Cette portée réduite garantit un résultat reproductible et vous laisse définir la politique appropriée. Un projet multiplateforme peut accepter chaque style cohérent, alors qu’un paquet Linux peut exiger uniquement LF. Si votre source contient d’anciens retours chariot isolés, convertissez-les ou validez-les séparément.
Cas d’usage
Appliquer une règle de fins de ligne au dépôt
Contrôlez le code et les configurations pour repérer LF, CRLF ou un mélange avant d’accepter une modification générée.
Diagnostiquer des différences parasites
Vérifiez si des fins incohérentes font paraître modifié un contenu identique entre systèmes d’exploitation.
Valider des exports générés
Comptez les fins de ligne et confirmez que le producteur a respecté une convention uniforme.
Questions fréquentes
Combien coûte une détection ?
Dans le navigateur, vous pouvez exécuter localement la même logique déterministe.
Comment CRLF est-il compté ?
Chaque paire retour chariot et saut de ligne compte pour une fin CRLF, sans recompter son caractère LF.
Quand un fichier est-il déclaré mixte ?
Le style est mixte dès que l’entrée contient au moins un LF isolé et au moins une paire CRLF.
Cet outil modifie-t-il ou normalise-t-il le texte ?
Non. Il analyse seulement la chaîne et renvoie des compteurs ; il ne modifie ni ne restitue un fichier réécrit.
Pourquoi un texte sans saut de ligne renvoie-t-il une erreur ?
Un texte vide ou d’une seule ligne n’a aucun style de fin de ligne à détecter : vous recevez donc un message clair plutôt qu’une supposition. Collez le fichier entier avec ses sauts d’origine, y compris le dernier, pour obtenir une réponse fiable.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/dev2/line-ending-detect \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"first line\r\nsecond line\r\nthird line\r\n"}'const res = await fetch("https://api.kit.forhosting.com/dev2/line-ending-detect", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "first line\r\nsecond line\r\nthird line\r\n"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/line-ending-detect",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "first line\r\nsecond line\r\nthird line\r\n"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/line-ending-detect", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"first line\\r\\nsecond line\\r\\nthird line\\r\\n"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"first line\r\nsecond line\r\nthird line\r\n"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/line-ending-detect", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "first line\r\nsecond line\r\nthird line\r\n"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.line_ending_detect",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Détectez avant de normaliser ou de valider
L’implémentation effectue une analyse déterministe unique avec des compteurs de taille constante ; un même texte produit donc toujours le même JSON, sans dépendre du réseau, des paramètres régionaux, de l’horloge ou de la machine.
Questions techniques
Que se passe-t-il avec un fichier d’une ligne ?
Sans fin LF ou CRLF, la capacité renvoie invalid_input, car aucune convention ne peut être détectée.