Eliminar la primera línea del texto
Pegue un CSV y desaparece la fila de encabezado name,age,city: quedan solo los datos Ada,36,London y Bob,41,Paris. El resto del texto, con sus saltos de línea, no se toca. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- name,age,city Ada,36,London Bob,41,Paris
- Resultado
- Ada,36,London Bob,41,Paris
- Primera línea
- name,age,city
- Longitud de la primera línea
- 13
- Longitud del resultado
- 26
Los datos pegados casi siempre traen una línea de más arriba: un encabezado CSV, un título de tabla, una etiqueta de informe o una fila de nombres de columna que la herramienta siguiente no necesita. Borrar esa línea a mano en un editor es lento, propenso a errores y difícil de automatizar cuando el mismo patrón se repite en scripts y pipelines. Esta capacidad toma el texto que usted proporciona, identifica la primera línea con finales de línea reales (CRLF de Windows, LF de Unix y CR clásico de Mac), elimina solo esa línea inicial y devuelve todo lo posterior al primer salto sin cambios. La entrada de una sola línea se acepta y deja un resto vacío, lo que permite encadenar con seguridad cuando una fuente a veces llega sin cuerpo.
Cómo funciona por dentro la eliminación de la primera línea
Quitar la primera línea es un barrido determinista breve, no un editor de documentos completo ni un importador de hojas de cálculo. Después busca la primera secuencia de salto de línea con prioridad fija: el par CRLF de Windows de dos caracteres se trata como un solo salto para que un CSV exportado desde Excel no deje un retorno de carro suelto en la primera fila de datos. Si ese par no está, se usa un salto de línea solo o un retorno de carro solo.
Cuando la entrada no tiene ningún salto, la cadena completa se trata como la primera línea y el resultado es la cadena vacía: es un éxito intencionado, no un error, porque descartar un pegado que solo era un título debe dejar nada en lugar de fallar.
Los espacios blandos, tabuladores y el contenido en blanco de la primera línea no tienen un caso especial: una primera línea en blanco sigue contando como la línea a eliminar, que es el comportamiento correcto cuando alguien pega una fila vacía delante de los datos. Como la ruta es parse puro sobre cadenas, la latencia se mantiene por debajo del milisegundo en tamaños de formulario típicos y el modelo de coste publicado es analítico, no basado en tokens de modelo.
Dónde aparecen las herramientas de quitar la primera línea en el trabajo real
Los ingenieros de datos que limpian exportaciones CSV y TSV a menudo necesitan que desaparezca la fila de nombres de columna antes de cargar una etapa de almacén que ya tiene esquema, o antes de alimentar un parser que espera filas de datos puras. Los analistas pegan selecciones de hoja de cálculo en chats y tickets y desean quitar el encabezado para que los colegas vean solo los valores.
Los equipos de soporte y operaciones eliminan una línea de título legible de pegados de incidentes antes de adjuntar el cuerpo a un clasificador automático. Los equipos de contenido quitan un H1 de markdown o un título de documento pegado antes de guardar el cuerpo en un campo CMS que ya tiene su propia propiedad de título. Los scripts de automatización que ensamblan colas, prompts o transformaciones en varios pasos descartan la primera línea cuando una etapa anterior siempre emite un banner de estado.
Si más adelante necesita invertir el orden de las líneas, eliminar líneas duplicadas, unir todos los saltos en una sola línea, contar líneas o recortar cada línea, trátelos como intenciones de búsqueda y páginas de aterrizaje distintas en lugar de sobrecargar esta página de eliminar-primera-línea.
Qué puede hacer con ella
Quitar filas de encabezado CSV y TSV
Elimine la línea de nombres de columna de exportaciones pegadas para que cargadores y scripts reciban filas de datos puras sin reabrir una hoja de cálculo.
Quitar títulos de informes pegados
Corte una línea inicial de título o etiqueta de registros, tickets y documentos pegados antes de almacenar o clasificar el cuerpo.
Normalizar entradas ETL en varias etapas
Garantice que cada lote pierda exactamente una línea inicial en pipelines donde las etapas anteriores siempre emiten un banner o encabezado.
Preguntas frecuentes
¿Qué cuenta como la primera línea?
Todo desde el inicio del texto hasta—sin incluir—el primer salto de línea. Ese primer salto puede ser CRLF de Windows (una unidad), LF de Unix o CR clásico de Mac. Todo lo posterior a ese salto se devuelve en result.
¿Qué ocurre si mi texto tiene solo una línea?
Es una respuesta correcta, no un error, de modo que los pegados de una sola línea no hacen fallar su pipeline.
¿Qué pasa si text está vacío?
La entrada vacía se trata como error del cliente para que quien olvidó enlazar un campo reciba una validación clara en lugar de un resultado vacío silencioso.
¿Se cambian los finales de línea del resto?
No. Solo el primer salto se usa como punto de corte. El resto se devuelve como subcadena, de modo que las secuencias CRLF o LF posteriores a la primera línea permanecen como estaban.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta en local.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/str/remove-first-line \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"name,age,city\nAda,36,London\nBob,41,Paris"}'const res = await fetch("https://api.kit.forhosting.com/str/remove-first-line", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "name,age,city\nAda,36,London\nBob,41,Paris"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/remove-first-line",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "name,age,city\nAda,36,London\nBob,41,Paris"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/remove-first-line", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"name,age,city\\nAda,36,London\\nBob,41,Paris"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"name,age,city\nAda,36,London\nBob,41,Paris"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/remove-first-line", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "name,age,city\nAda,36,London\nBob,41,Paris"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.remove_first_line",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Las cadenas vacías se rechazan con un error invalid_input claro para que los campos ausentes fallen de forma visible en lugar de inventar un éxito. Sin llamadas de red dentro del motor, sin semillas aleatorias y sin dependencia del reloj: el mismo texto siempre produce un JSON idéntico a $0.002 por elemento API correcto.
Cómo funciona por dentro la eliminación de la primera línea
El motor lee el campo text obligatorio y no vacío, resuelto opcionalmente mediante alias habituales como input, value, data, content o body cuando clientes antiguos usan esos nombres. Todo lo anterior a ese primer salto pasa a first_line; todo lo posterior a result, con los finales de línea originales del resto preservados exactamente para que las herramientas posteriores que distinguen CRLF de LF mantengan la forma esperada. Las cargas extremadamente largas por encima del tope de caracteres documentado fallan con invalid_input para que una sola solicitud no monopolice la memoria del Worker.
Qué envía usted y qué recibe de vuelta
Envíe un único campo obligatorio llamado text con la cadena no vacía cuya primera línea desea eliminar. Los finales mixtos posteriores al primer salto se dejan intactos: solo el primer salto se consume como punto de corte; el resto del bloque es una subcadena fiel. Los números y booleanos en text se convierten a sus formas decimales o true/false; se rechazan objetos, arrays, NaN e Infinity. En caso de éxito la respuesta devuelve el texto original, el resto en result, la cadena first_line eliminada, first_line_length y result_length para asertos rápidos, original_length, original_line_count y remaining_line_count para que los pipelines comprueben cuántas líneas lógicas sobrevivieron, break_kind como lf, crlf, cr o null cuando no hubo salto, un indicador booleano changed y operation con valor remove_first_line. Las comprobaciones clásicas incluyen un CSV de tres líneas con encabezado y dos filas de datos que devuelve solo esas dos filas, una línea de título sobre un párrafo que deja solo el párrafo, y una cadena de una sola línea que produce un result vacío con remaining_line_count cero. El text vacío falla la validación antes de cualquier transformación para que los clientes que olvidaron enlazar un campo reciban un error claro en lugar de un payload vacío silencioso. Use el formulario gratuito del navegador para pegar y copiar con rapidez; luego invoque el mismo contrato desde scripts al quitar encabezados de exportaciones masivas, volcados de registro o respuestas API. El precio de las llamadas API correctas es la base publicada de $0.002 por elemento; los fallos de validación, incluido el text vacío, no consumen saldo prepago.
Dónde aparecen las herramientas de quitar la primera línea en el trabajo real
Como esta capacidad es un motor de parse puro, el precio de la API es la base publicada de $0.002 por elemento correcto y la validación fallida no consume saldo.