Czy istnieje coś takiego jak generator lorem ipsum?


20

Czy istnieje coś takiego jak „ generator lorem ipsum ”? Wiem, że istnieje w Lateksie, a nawet w LibreOffice, ale szukam polecenia terminalu. Chciałbym wpisać coś takiego loremipsum 10 >> file1.txt, co da mi pierwsze 10 akapitów lorem ipsum, każdy akapit kończy się jednym znakiem LF i 1 pustą białą linią między każdym paragrafem. Wyjście zostanie przekierowane do pliku o nazwie file1.txt w bieżącym katalogu.




1
ustaum.com zawsze tam był, kiedy go potrzebowałem (tak, wiem, że nie jest lokalny, tylko oferuje inny sposób).
msw

Odpowiedzi:


14

Możesz użyć biblioteki perla libtext-lorem-perl. Oto krótki przykład, możesz go rozwinąć, aby przeanalizować argumenty wiersza poleceń itp.

#!/usr/bin/env perl

use Text::Lorem;

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

print $paragraphs;

1
dostałem ten błąd: nie mogę zlokalizować Text / Lorem.pm w @INC (@INC zawiera: / 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.) at ./loremipsum.pl wiersz 3. BEGIN nie powiodło się- -kompilacja przerwana na linii 3./loremipsum.pl
Frank

1
Niestety nie zainstalowałem pakietu libtext-lorem-perl. Spróbuję ponownie.
Frank

5
W Debianie libtext-lorem-perlpakiet zawiera proste lorempolecenia, więc nie ma pilnej potrzeby tworzenia własnych skryptów.
Josef Kufner

5

znalazłem to w 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

musi być ograniczony przez inne polecenie lub generuje tekst w nieskończoność


2
zawiesza się w systemie OS X 10.10 ztr: Illegal byte sequence
ssc

3
Losowe słowa nie są jednak prawdziwe.
user877329

1
@ssc Spróbuj zainstalować GNU tr( brew install coreutils) i zamienić trz gtr.
jdlm

tr na Macu nie zachowuje się tak samo jak na Linuksie. Zobacz ten post: unix.stackexchange.com/questions/141420/…
aakoch

Jeśli chcesz awk na Macu, musisz zainstalować gawk brew install gawktylko ze względu na rodzaj linuxa, który działa na Macu .
PrestonDocks

5

AUR Fedory i Arch Linuxa mają lorem-ipsum-generatorpakiet:

lorem-ipsum-generator -p 10 -l

zrobi dokładnie to, o co prosisz.

Kolejna alternatywa dla majsterkowiczów:

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

Spowoduje to przesłanie bashdokumentacji do standardowego wyjścia, potokowanie, do shufktórego losowo wybiera 50 wierszy, a następnie sedusuwa wiele spacji wiodących i ostatecznie fmtformatuje je do linii o długości około 90 znaków.

Oczywiście jest to tylko punkt wyjścia, a może trzeba udoskonalić wyjście, za co sed, tri inne manipulatory smyczkowe pomogą.

shuf, fmtI trsą częściami coreutils(który ma wielką szansę być już zainstalowany w dystrybucji GNU / Linux).


Poprawiłem trochę twój program sed i dodałem głowicę do rury, abyś mógł wybrać liczbę linii, którą chcesz:info -a bash -o - | shuf -n50 | sed -n 's/ */ /g;s/^ //;/./p' | fmt -w 90 | head -8
OscarJ

2

Chociaż technicznie nie jest to Lorem Ipsum ani lokalny plik binarny, na Metaphorpsum istnieje interfejs API, który może wyświetlać podobny tekst, ale w języku angielskim. Nazywam to curltak:

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

Co więcej, możesz zdefiniować wywołanie API jako funkcję w swoim profilu bash lub w skryptach:

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

Możesz następnie użyć go w sposób bardzo podobny do swojego przykładu:
loremipsum paragraphs 10 >> file1.txt


1

Następujące polecenie było dla mnie przydatne w wielu sytuacjach:

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

To daje 50 linii, gdzie znaki niealfabetycznej uzyskanych od losowo base64 /dev/urandomzostały zastąpione pustymi miejscami: sed 's/[^[:alpha:]]/ /g'. Każda z linii którego indeks jest wielokrotnością 10 otrzymuje pustego (w celu symulacji rozdzielania pkt) awk '{print(0==NR%10)?"":$1}'.

Możesz dodać | awk '{ print NR,$0 }'na końcu, aby uzyskać numerowane linie (lub dowolne inne, które spełniają Twoje potrzeby). lipsumPrzydatny może być wykonywalny skrypt bash, który przyjmuje liczbę wierszy jako argument.

#!/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) Twoje polecenie awk odrzuca co dziesiątą linię. Nie ma to znaczenia dla losowego tekstu, ale dla mniej banalnych aplikacji możesz użyć awk '{print}0==NR%10{print""}'pustego wiersza po co dziesiątym wierszu. (2) Tak, awk '{ print NR,$0 }'wydrukuje numery linii, ale należy pamiętać, że istnieją inne narzędzia, które zostały specjalnie zaprojektowane do tego celu (jak nli  cat -n).
G-Man mówi „Przywróć Monikę”

Dzięki @ G-Man. (1) W przypadku mniej trywialnych aplikacji można rozważyć, base64 /dev/urandom | sed '{0~10 s/^.*//;0~10!s/[^A-z]/ /g;50q0}'ale ta wydaje mi się mniej jasna. (2) Należy pamiętać, że w tym przypadku nli cat -nnie podawaj tej samej numeracji linii.
ninfito


0

Zrobiłem proste rozwiązanie offline za pomocą jednego z wielu generatorów lorem ipsum w Internecie. Przechowuj umiarkowaną ilość tekstu - powiedzmy 20 akapitów - w pliku, i wykonaj następujący skrypt:

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


0

Wygeneruj losowy tekst lorem ipsum przy użyciu Metaphorpsum API

Domyślnie 3 zdania

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

BOUNS: unika progresji zwijania, usuwa% z danych wyjściowych i dodaje do schowka, aby ułatwić wklejanie, a jednocześnie wyświetlać na standardowym ekranie

Przykładowe użycie nr 1:

lorem

To niezaprzeczalny fakt, naprawdę; rozrusznik jest wysięgnikiem. Nie można oddzielić profesorów od nastrojowych gazów. Niewielu potrafi wymienić niepochlebny olej, który nie jest podejrzanym krewnym.

Przykładowe użycie nr 2:

lorem 1

Szwedzki podobny do świątyń pochodzi z najważniejszego syropu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.