¿Hay algo como un generador lorem ipsum?

20

¿Hay algo así como un ' generador de ipsum lorem '? Sé que existe en Latex, e incluso en LibreOffice, pero estoy buscando un comando de terminal. Me gustaría escribir algo como loremipsum 10 >> file1.txteso me daría los primeros 10 párrafos de lorem ipsum, cada párrafo terminó con un carácter LF y 1 línea blanca vacía entre cada párrafo. Y la salida se redirigiría a un archivo llamado file1.txt en el directorio actual.

Franco
fuente
2
Pruebe esto: code.google.com/p/pypsum/wiki/pypsum
Kyle Strand
1
lipsum.com siempre ha estado allí cuando lo necesitaba (sí, sé que no es local, solo ofrece otra forma).
msw

Respuestas:

14

Puedes usar la biblioteca perl libtext-lorem-perl. Aquí un breve ejemplo, siéntase libre de expandirlo para analizar argumentos de línea de comando, etc.

#!/usr/bin/env perl

use Text::Lorem;

my $text = Text::Lorem->new();
$paragraphs = $text->paragraphs(10);

print $paragraphs;
Marco
fuente
1
recibí este error: No puedo ubicar Text / Lorem.pm en @INC (@INC contiene: / etc / perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 / usr / lib / perl5 / usr / share / perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 / usr / local / lib / site_perl.) en ./loremipsum.pl línea 3. BEGIN falló- -compilación abortada en ./loremipsum.pl línea 3.
Frank
1
Lo siento, no instalé el paquete libtext-lorem-perl. Lo intentare de nuevo.
Frank
55
En Debian, el libtext-lorem-perlpaquete contiene un loremcomando simple , por lo que no hay necesidad urgente de scripts personalizados.
Josef Kufner
5

encontré esto en Bash One-Liners

 tr -dc a-z1-4 </dev/urandom | tr 1-2 ' \n' | awk 'length==0 || length>50' | tr 3-4 ' ' | sed 's/^ *//' | cat -s | sed 's/ / /g' |fmt

debe estar limitado por otro comando o genera texto infinitamente

chillin
fuente
2
falla en OS X 10.10 contr: Illegal byte sequence
ssc
3
Sin embargo, las palabras aleatorias no son reales.
user877329
1
@ssc Intente instalar GNU tr( brew install coreutils) y reemplácelo trcon gtr.
jdlm
tr en una Mac no se comporta igual que en Linux. Ver esta publicación: unix.stackexchange.com/questions/141420/…
aakoch
Si desea awk en Mac, necesitará instalar gawk brew install gawksolo por el tipo de Linux que se ejecuta en Mac.
PrestonDocks
5

Fedora y AUR de Arch Linux tienen un lorem-ipsum-generatorpaquete:

lorem-ipsum-generator -p 10 -l

hará exactamente lo que está pidiendo.

Otra alternativa de bricolaje:

info bash -o -|shuf -n50|sed 's/  */ /g;s/^ //'|fmt -w 90

Esto envía la bashdocumentación a stdout, la canaliza a la shufque selecciona aleatoriamente 50 líneas, luego sedelimina espacios múltiples y principales, y finalmente la fmtformatea en líneas de aproximadamente 90 caracteres de longitud.

Por supuesto, este es solo un punto de partida y es posible que deba refinar la salida, para lo cual sed, try otros manipuladores de cadenas ayudarán.

shuf, fmty trson partes de coreutils(que tiene una gran posibilidad de estar ya instalado en su distribución GNU / Linux).

Skippy le Grand Gourou
fuente
Arreglé un poco su programa sed y agregué un cabezal a la tubería para que pueda seleccionar la cantidad de líneas que desea:info -a bash -o - | shuf -n50 | sed -n 's/ */ /g;s/^ //;/./p' | fmt -w 90 | head -8
OscarJ
2

Aunque técnicamente no es Lorem Ipsum o un binario local, hay una API en Metaphorpsum que puede generar texto similar pero en inglés. Lo llamo curlasí:

  • curl http://metaphorpsum.com/sentences/3
  • curl http://metaphorpsum.com/paragraphs/20

Mejor aún, puede definir la llamada API como una función en su perfil bash o scripts como este:

loremipsum () {
if [ "${1}" = "" ] || [ "${2}" = "" ]; then
echo "Usage: loremipsum [paragraphs, sentences] [integer]"
else
curl -s http://metaphorpsum.com/"${1}"/"${2}" && printf "\n"
fi
}

Luego puede usarlo de una manera muy similar a su ejemplo:
loremipsum paragraphs 10 >> file1.txt

Diales Mavis
fuente
1

El siguiente comando me ha sido útil en muchas situaciones:

base64 /dev/urandom | awk '{print(0==NR%10)?"":$1}' | sed 's/[^[:alpha:]]/ /g' | head -50

Esto da 50 líneas donde caracteres no alfabéticos obtuvieron aleatoriamente de base64 /dev/urandomhan sido sustituidos por espacios en blanco: sed 's/[^[:alpha:]]/ /g'. Cada línea cuyo índice es un múltiplo de 10 se sustituye por la cadena vacía (con el fin de simular la separación de los párrafos): awk '{print(0==NR%10)?"":$1}'.

Puede agregar | awk '{ print NR,$0 }'al final para obtener líneas numeradas (o cualquier otra que satisfaga sus necesidades). Un script bash ejecutable lipsumque acepte el número de líneas como argumento podría ser útil.

#!/usr/bin/bash
base64 /dev/urandom | awk '{print(0==NR%10)?"":$1}' | sed 's/[^[:alpha:]]/ /g' | head -$1 | awk '{ print NR,$0 }'

lipsum 100 > output_file

ninfito
fuente
(1) Su comando awk descarta cada décima línea. No es importante para el texto aleatorio, pero para aplicaciones menos triviales es posible que desee utilizar awk '{print}0==NR%10{print""}'para agregar una línea en blanco después de cada décima línea. (2) Sí, awk '{ print NR,$0 }'imprimirá números de línea, pero tenga en cuenta que hay otras herramientas que están específicamente diseñadas para hacer eso (me gusta nly  cat -n).
G-Man dice 'restablecer a Mónica' el
Gracias @ G-Man. (1) Para aplicaciones menos triviales que podría considerar, base64 /dev/urandom | sed '{0~10 s/^.*//;0~10!s/[^A-z]/ /g;50q0}'pero esta me parece menos clara. (2) Tenga en cuenta que en este caso, nly cat -nno dé la misma numeración de líneas.
ninfito
0

Hice una solución fuera de línea simple por medio de uno de los muchos generadores lorem ipsum en la web. Almacene una cantidad moderada de texto, digamos 20 párrafos, en un archivo y haga que el siguiente script sea ejecutable:

#!/bin/bash
file=$HOME/lib/text/lorem_ipsum && cat $file
hasta
fuente
0

Generar texto aleatorio lorem ipsum usando Metaphorpsum API

Predeterminado a 3 oraciones

lorem() { 
  curl -s http://metaphorpsum.com/sentences/${1-3} | pbcopy
  pbpaste | grep .
}

BOUNS: evita el progreso del rizo, elimina el% de la salida y se agrega al portapapeles para facilitar el pegado, mientras se muestra en stdout

Ejemplo de uso # 1:

lorem

Es un hecho innegable, de verdad; El motor de arranque es un estabilizador. Uno no puede separar a los profesores de los gases malhumorados. Pocos pueden nombrar un aceite sin alabar que no sea un pariente desconfiado.

Ejemplo de uso # 2:

lorem 1

El sueco de santuario proviene de un jarabe de primer orden.

jasonleonhard
fuente