Existe algo como um gerador de lorem ipsum?


20

Existe algo como um ' gerador de lorem ipsum '? Eu sei que ele existe no Latex e até no LibreOffice, mas estou procurando um comando do terminal. Eu gostaria de digitar algo assim loremipsum 10 >> file1.txtque me desse os 10 primeiros parágrafos do lorem ipsum, cada parágrafo terminado com um caractere LF e 1 linha branca vazia entre cada parágrafo. E a saída seria redirecionada para um arquivo chamado file1.txt no diretório atual.




11
lipsum.com sempre esteve lá quando eu precisei (sim, eu sei que não é local, apenas oferecendo outra maneira).
msw

Respostas:


14

Você pode usar a biblioteca perl libtext-lorem-perl. Aqui um pequeno exemplo, fique à vontade para expandi-lo para analisar argumentos de linha de comando etc.

#!/usr/bin/env perl

use Text::Lorem;

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

print $paragraphs;

11
Eu recebi este erro: Não é possível localizar o texto / Lorem.pm no @INC (o @INC contém: / 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.) na linha ./loremipsum.pl linha 3. BEGIN falhou- -compilation abortado em linha ./loremipsum.pl 3.
Frank

11
Desculpe, não instalei o pacote libtext-lorem-perl. Tentará novamente.
22413 Frank

5
No Debian, o libtext-lorem-perlpacote contém loremcomandos simples , portanto não há necessidade urgente de scripts personalizados.
Josef Kufner

5

encontrou isso no 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 ser limitado por outro comando ou gera texto infintamente


2
falha no OS X 10.10 comtr: Illegal byte sequence
ssc

3
Palavras aleatórias não são a coisa real embora.
precisa saber é o seguinte

11
@ssc Tente instalar o GNU tr( brew install coreutils) e substitua trpor gtr.
jdlm

O tr em um Mac não se comporta da mesma maneira que no Linux. Veja esta postagem: unix.stackexchange.com/questions/141420/…
aakoch 3/18/18

Se você deseja ativar o awk no Mac, precisará instalar o gawk brew install gawkapenas por causa do tipo de linux executado no mac.
PrestonDocks 24/07

5

O Fedora e o AUR do Arch Linux têm um lorem-ipsum-generatorpacote:

lorem-ipsum-generator -p 10 -l

fará exatamente o que você está pedindo.

Outra alternativa DIY:

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

Isso gera a bashdocumentação no stdout, canaliza-o para o shufqual seleciona aleatoriamente 50 linhas, sedremove espaços múltiplos e iniciais e, finalmente, fmtformata-o em linhas com aproximadamente 90 caracteres.

Claro que isto é apenas um ponto de partida e você pode precisar para refinar a saída, para o qual sed, tre outros manipuladores de corda vai ajudar.

shuf, fmte trfazem parte do coreutils(que tem uma grande chance de já estar instalado na sua distribuição GNU / Linux).


Corrigi um pouco o seu programa sed e adicionei uma cabeça ao tubo para que você possa selecionar o número de linhas que deseja:info -a bash -o - | shuf -n50 | sed -n 's/ */ /g;s/^ //;/./p' | fmt -w 90 | head -8
OscarJ

2

Embora não seja tecnicamente o Lorem Ipsum ou um binário local, existe uma API no Metaphorpsum que pode gerar texto semelhante, mas em inglês. Eu chamo curlassim:

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

Melhor ainda, você pode definir a chamada da API como uma função no seu perfil de bash ou 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
}

Você pode usá-lo de maneira muito semelhante ao seu exemplo:
loremipsum paragraphs 10 >> file1.txt


1

O seguinte comando foi útil para mim em muitas situações:

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

Isto dá 50 linhas, onde os caracteres não alfabéticos obtidos aleatoriamente a partir de base64 /dev/urandomter sido substituído por espaços em branco: sed 's/[^[:alpha:]]/ /g'. Cada linha cujo índice é um múltiplo de 10 é substituído pela cadeia vazia (a fim de simular a separação dos parágrafos): awk '{print(0==NR%10)?"":$1}'.

Você pode adicionar | awk '{ print NR,$0 }'no final para obter linhas numeradas (ou qualquer outra que atenda às suas necessidades). Um script bash executável lipsumque aceita o número de linhas como argumento pode 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


(1) Seu comando awk descarta cada décima linha. Não importa para texto aleatório, mas para aplicativos menos triviais você pode awk '{print}0==NR%10{print""}'adicionar uma linha em branco após cada décima linha. (2) Sim, awk '{ print NR,$0 }'imprimirá números de linhas, mas observe que existem outras ferramentas projetadas especificamente para fazer isso (como nle  cat -n).
G-Man diz 'Reinstate Monica'

Obrigado @ G-Man. (1) Para aplicativos menos triviais, você pode considerar, base64 /dev/urandom | sed '{0~10 s/^.*//;0~10!s/[^A-z]/ /g;50q0}'mas este me parece menos claro. (2) Observe que, neste caso, nle cat -nnão dê a mesma numeração de linha.
ninfito 23/04


0

Criei uma solução offline simples por meio de um dos muitos geradores de lorem ipsum na web. Armazene uma quantidade moderada de texto - digamos 20 parágrafos - em um arquivo e torne o seguinte script executável:

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


0

Gere texto aleatório de lorem ipsum usando a API Metaphorpsum

Padrão para 3 frases

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

BOUNS: evita o progresso do curl, remove% da saída e adiciona à sua área de transferência para facilitar a colagem, enquanto ainda é exibido no stdout

Exemplo de uso nº 1:

lorem

É um fato inegável, realmente; o acionador de partida é um estabilizador. Não se pode separar professores de gases mal-humorados. Poucos podem nomear um óleo não avaliado que não é um parente desconfiado.

Exemplo de uso nº 2:

lorem 1

O sueco shrinelike vem de um xarope principal.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.