Tengo un mini-sistema con número limitado únicamente de binarios ( bash
, cp
, cat
, sed
, ...). No tengo tail
comando, y me pregunto si podría emular la funcionalidad de cola consed
cat foo.txt | tail -n 10
Sé que puedo imprimir líneas 1-10 con sed cat foo.txt | sed -n '1,10p'
, pero ¿cómo imprimiría las últimas 10 líneas?
Respuestas:
Podrías hacer algo como esto:
fuente
sed -e :a -e '$q;N;11,$D;ba' foo
para que coincida con la pregunta.sed -e '1,11p' -e :a -e '$q;N;11,$D;ba'
Pero todavía me gustaría entender la parte de la cola !!!pero si no tienes tac, solo puedes usar sed de esta manera:
fuente
¿Está
expr
disponible con su sistema? Luego puede intentar evaluar el número de línea deseado después de haber contado el número total de líneas en el archivo.Creé un archivo llamado que
tmp
contiene los números del 1 al 20 en cada línea.Por supuesto, puede usar
wc -l
, si está disponible.El comando para calcular el número total de líneas en el archivo se toma de sed one liners . Sin embargo, no he comprobado si también funciona con archivos vacíos.
PD Si
expr
no está disponible, puede usar restar números en Bash como se muestra a continuación:fuente