C'è qualcosa come un generatore di ipsum lorem?


20

Esiste qualcosa come un " generatore di lorem ipsum "? So che esiste in Latex e persino in LibreOffice, ma sto cercando un comando terminale. Vorrei digitare qualcosa del genere loremipsum 10 >> file1.txtche mi darebbe i primi 10 paragrafi di lorem ipsum, ogni paragrafo termina con un carattere LF e 1 linea bianca vuota tra ogni paragaph. E l'output verrebbe reindirizzato a un file chiamato file1.txt nella directory corrente.




1
lipsum.com è sempre stato lì quando ne avevo bisogno (sì, lo so che non è locale, offrendo solo un altro modo).
msw,

Risposte:


14

Puoi usare la libreria perl libtext-lorem-perl. Ecco un breve esempio, sentiti libero di espanderlo per analizzare gli argomenti della riga di comando, ecc.

#!/usr/bin/env perl

use Text::Lorem;

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

print $paragraphs;

1
ho ricevuto questo errore: Impossibile trovare Text / Lorem.pm in @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.) a ./loremipsum.pl riga 3. INIZIO fallito- -compilation interrotta a ./loremipsum.pl linea 3.
Frank

1
Spiacenti, non ho installato il pacchetto libtext-lorem-perl. Ci riproverò.
Frank,

5
Su Debian il libtext-lorem-perlpacchetto contiene un semplice loremcomando, quindi non c'è bisogno urgente di script personalizzati.
Josef Kufner,

5

trovato questo a 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

deve essere limitato da un altro comando o genera un testo infintamente


2
fallisce su OS X 10.10 contr: Illegal byte sequence
ssc il

3
Le parole casuali non sono la cosa reale però.
user877329

1
@ssc Prova a installare GNU tr( brew install coreutils) e sostituiscilo trcon gtr.
jdlm,

tr su un Mac non si comporta come su Linux. Vedi questo messaggio: unix.stackexchange.com/questions/141420/…
aakoch,

Se vuoi awk su Mac dovrai installare gawk brew install gawksolo per il tipo di Linux che gira su Mac.
PrestonDocks

5

FedoraAUR di e Arch Linux hanno un lorem-ipsum-generatorpacchetto:

lorem-ipsum-generator -p 10 -l

farà esattamente quello che stai chiedendo.

Un'altra alternativa fai-da-te:

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

Questo emette la bashdocumentazione in stdout, la dirotta a shufcui seleziona casualmente 50 righe, quindi sedrimuove spazi multipli e iniziali e infine la fmtformatta in righe lunghe circa 90 caratteri.

Naturalmente questo è solo un punto di partenza e potrebbe essere necessario per perfezionare l'uscita, per il quale sed, tre altri manipolatori a corda sarà di aiuto.

shuf, fmte ne trfanno parte coreutils(che ha una grande probabilità di essere già installato sulla tua distribuzione GNU / Linux).


Ho sistemato un po 'il tuo programma sed e ho aggiunto una testa alla pipa in modo da poter selezionare il numero di linee che desideri:info -a bash -o - | shuf -n50 | sed -n 's/ */ /g;s/^ //;/./p' | fmt -w 90 | head -8
OscarJ

2

Sebbene non sia tecnicamente Lorem Ipsum o un binario locale, esiste un'API su Metaphorpsum che può generare un testo simile ma in inglese. Lo chiamo curlcosì:

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

Meglio ancora, puoi definire la chiamata API come una funzione nel tuo profilo bash o script come questo:

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

Puoi quindi usarlo in un modo molto simile al tuo esempio:
loremipsum paragraphs 10 >> file1.txt


1

Il seguente comando mi è stato utile in molte situazioni:

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

Questo dà 50 linee in cui caratteri non alfabetici ottenuti casualmente da base64 /dev/urandomsono stati sostituiti da spazi: sed 's/[^[:alpha:]]/ /g'. Ogni riga il cui indice è un multiplo di 10 viene sostituita dalla stringa vuota (per simulare la separazione dei paragrafi):awk '{print(0==NR%10)?"":$1}' .

Puoi aggiungere | awk '{ print NR,$0 }'alla fine per ottenere linee numerate (o qualsiasi altra che soddisfi le tue esigenze). Un script bash eseguibile lipsumche accetta il numero di righe come argomento potrebbe essere utile.

#!/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


(1) Il tuo comando awk scarta ogni decima riga. Non importa per il testo casuale, ma per applicazioni meno banali potresti voler usare awk '{print}0==NR%10{print""}'per aggiungere una riga vuota dopo ogni decima riga. (2) Sì, awk '{ print NR,$0 }'stamperà i numeri di riga, ma tieni presente che esistono altri strumenti appositamente progettati per farlo (come nle  cat -n).
G-Man dice "Reinstate Monica" il

Grazie @ G-Man. (1) Per applicazioni meno banali potresti prendere in considerazione, base64 /dev/urandom | sed '{0~10 s/^.*//;0~10!s/[^A-z]/ /g;50q0}'ma questa mi sembra meno chiara. (2) Notare che in questo caso, nle cat -nnon fornire la stessa numerazione di riga.
ninfito,


0

Ho realizzato una semplice soluzione offline per mezzo di uno dei tanti generatori di lorem ipsum sul web. Memorizza una moderata quantità di testo, ad esempio 20 paragrafi, in un file e rendi eseguibile il seguente script:

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


0

Genera testo ipsum su lorem casuale usando l'API Metaphorpsum

L'impostazione predefinita è 3 frasi

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

BOUNS: evita i progressi nell'arricciatura, rimuove la% dall'output e si aggiunge agli appunti per facilitarne l'incollamento, pur continuando a visualizzare sullo stdout

Esempio di utilizzo n. 1:

lorem

È un fatto innegabile, davvero; lo starter è uno stabilizzatore. Non si possono separare i professori dai gas lunatici. Pochi possono nominare un olio non trattato che non è un parente diffidente.

Esempio di utilizzo n. 2:

lorem 1

Lo svedese, simile a un santuario, proviene da uno sciroppo principale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.