Bir lorem ipsum jeneratörü gibi bir şey var mı?


20

' Lorem ipsum jeneratörü' gibi bir şey var mı ? Lateks ve hatta LibreOffice'te var olduğunu biliyorum, ama bir terminal komutu arıyorum. loremipsum 10 >> file1.txtBana lorem ipsum'un ilk 10 paragrafını verecek böyle bir şey yazmak istiyorum , her paragraf bir LF karakteri ve her paragaph arasında 1 boş beyaz çizgi ile sona erdi. Çıktı, geçerli dizindeki file1.txt adlı bir dosyaya yeniden yönlendirilir.




1
lipsum.com ihtiyacım olduğunda hep oradaydı (evet, yerel olmadığını biliyorum, sadece başka bir yol sunuyor).
msw

Yanıtlar:


14

Perl kütüphanesini kullanabilirsiniz libtext-lorem-perl. Burada kısa bir örnek, komut satırı argümanlarını ayrıştırmak için genişletmekten çekinmeyin.

#!/usr/bin/env perl

use Text::Lorem;

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

print $paragraphs;

1
Bu hatayı aldım: @INC içinde Metin / Lorem.pm bulunamıyor (@INC şunları içerir: / 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) ./loremipsum.pl satır 3'te. BEGIN başarısız oldu derlemesi ./loremipsum.pl satır 3'te iptal edildi.
Frank

1
Üzgünüz, libtext-lorem-perl paketini kurmadım. Tekrar deneyeceğim.
Frank

5
Debian'da libtext-lorem-perlpaket basit loremkomut içerir , bu nedenle özel komut dosyalarına acil bir ihtiyaç yoktur.
Josef Kufner

5

bunu Bash One-Liners'da buldum

 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

başka bir komutla sınırlandırılmalı veya sonsuz miktarda metin oluşturulmalıdır


2
OS X 10.10'datr: Illegal byte sequence
ssc

3
Rastgele kelimeler gerçek bir şey değildir.
user877329

1
GNU yüklemeyi deneyin @ssc tr( brew install coreutils) ve değiştirme trile gtr.
jdlm

Mac'teki tr, Linux'taki gibi davranmaz. Bu gönderiye
aakoch

Mac'te awk yapmak istiyorsanız, brew install gawksadece mac'te çalışan linux türü nedeniyle gawk yüklemeniz gerekir .
PrestonDocks

5

Fedora ve Arch Linux AUR'nin bir lorem-ipsum-generatorpaketi var:

lorem-ipsum-generator -p 10 -l

tam olarak ne istediğini yapacaksın.

Başka bir DIY alternatifi:

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

Bu bash, belgeleri stdout'a çıkarır shuf, rastgele 50 satırı seçen, ardından sedbirden çok ve önde gelen boşlukları kaldıran ve son olarak fmtyaklaşık 90 karakter uzunluğunda satırlara biçimlendirir.

Tabii bu sadece bir başlangıç noktasıdır ve sizin için çıktı, rafine gerekebilir sed, trve diğer yaylı manipülatörler yardımcı olacaktır.

shuf, fmtve trbunların parçalarıdır coreutils(GNU / Linux dağıtımınıza zaten yüklenmiş olma şansı yüksektir).


Sed programınızı biraz düzelttim ve boruya bir kafa ekledim, böylece istediğiniz satır sayısını seçebilirsiniz:info -a bash -o - | shuf -n50 | sed -n 's/ */ /g;s/^ //;/./p' | fmt -w 90 | head -8
OscarJ

2

Teknik olarak Lorem Ipsum veya yerel bir ikili olmasa da, Metaphorpsum'da benzer metni ancak İngilizce olarak verebilen bir API vardır . İle diyorumcurl :

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

Daha da iyisi, API çağrısını bash profilinizde veya böyle komut dosyalarında bir işlev olarak tanımlayabilirsiniz:

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

Daha sonra bunu örneğinize çok benzer bir şekilde kullanabilirsiniz:
loremipsum paragraphs 10 >> file1.txt


1

Aşağıdaki komut birçok durumda benim için yararlı oldu:

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

Bu, alfabetik olmayan karakterlerin rastgele elde edildiği 50 satır verir. base64 /dev/urandom boşluklar ile ikame edilmiştir: sed 's/[^[:alpha:]]/ /g'. Olan göstergesi Her satır 10 bir katını (paragrafların simüle ayrılması için) boş bir dize ile yer değiştirildiği: awk '{print(0==NR%10)?"":$1}'.

| awk '{ print NR,$0 }'Sonunda numaralandırılmış satırlar (veya ihtiyaçlarınızı karşılayan herhangi bir diğer) almak için ekleyebilirsiniz . lipsumSatır sayısını bağımsız değişken olarak kabul eden yürütülebilir bir bash betiği yararlı olabilir.

#!/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) awk komutunuz her onuncu satırı atar. Rastgele metin için önemli değildir, ancak daha az önemsiz uygulamalar için awk '{print}0==NR%10{print""}'her onuncu satırdan sonra boş bir satır eklemek için kullanmak isteyebilirsiniz . (2) Evet, awk '{ print NR,$0 }'satır numaralarını yazdıracaktır, ancak bunu yapmak için özel olarak tasarlanmış başka araçlar da vardır ( nlve  gibi cat -n).
G-Man, 'Monica'yı Yeniden Başlat' diyor

Teşekkürler @ G-Man. (1) Daha az önemsiz uygulamalar için düşünebilirsiniz, base64 /dev/urandom | sed '{0~10 s/^.*//;0~10!s/[^A-z]/ /g;50q0}'ancak bu benim için daha az net görünüyor. (2) Bu durumda nlve cat -naynı satır numaralandırmasını vermediğinizi unutmayın.
ninfito


0

Web'deki birçok lorem ipsum jeneratöründen birini kullanarak basit bir çevrimdışı çözüm yaptım. Bir dosyada orta miktarda metin (örneğin 20 paragraf) depolayın ve aşağıdaki komut dosyasını yürütülebilir yapın:

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


0

Metaforpsum API'sını kullanarak rasgele lorem ipsum metni oluşturun

Varsayılan 3 cümle

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

BOUNS: kıvrılma ilerlemesini önler, çıktıdan% 'sini çıkarır ve yapıştırma kolaylığı için panonuza eklerken stdout'a göstermeye devam eder

Örnek kullanım # 1:

lorem

Bu yadsınamaz bir gerçek, gerçekten; marş avara demiri. Profesörleri karamsar gazlardan ayıramazsınız. Çok azı, göreceli olmayan bir yağı temkinli olmayan bir isim olarak adlandırabilir.

Örnek kullanım # 2:

lorem 1

Shrinelike İsveç, en önemli şuruptan gelir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.