Có một cái gì đó giống như một máy phát điện lorem ipsum?


20

Có cái gì đó giống như một ' máy phát điện lorem ipsum ' không? Tôi biết nó tồn tại trong latex và thậm chí trong LibreOffice, nhưng tôi đang tìm kiếm một lệnh đầu cuối. Tôi muốn gõ một cái gì đó như thế loremipsum 10 >> file1.txtsẽ cho tôi 10 đoạn đầu tiên của lorem ipsum, mỗi đoạn kết thúc với một ký tự LF và 1 dòng trắng trống giữa mỗi paragaph. Và đầu ra sẽ được chuyển hướng đến một tệp có tên file1.txt trong thư mục hiện tại.




1
lipum.com đã luôn ở đó khi tôi cần (vâng, tôi biết nó không phải là địa phương, chỉ cung cấp một cách khác).
msw

Câu trả lời:


14

Bạn có thể sử dụng thư viện perl libtext-lorem-perl. Dưới đây là một ví dụ ngắn, vui lòng mở rộng nó để phân tích các đối số dòng lệnh, v.v.

#!/usr/bin/env perl

use Text::Lorem;

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

print $paragraphs;

1
tôi đã gặp lỗi này: Không thể định vị Văn bản / Lorem.pm trong @INC (@INC chứa: / 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.) tại ./loremipsum.pl dòng 3. BEGIN không thành công- -compilation bị hủy bỏ tại ./loremipsum.pl dòng 3.
Frank

1
Xin lỗi, tôi đã không cài đặt gói libtext-lorem-perl. Sẽ thử lại lần nữa.
Frank

5
Trên Debian libtext-lorem-perlgói chứa loremlệnh đơn giản , do đó không cần khẩn cấp cho các tập lệnh tùy chỉnh.
Josef Kufner

5

tìm thấy điều này tại 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

phải được giới hạn bởi một lệnh khác hoặc tạo ra văn bản vô cùng


2
không thành công trên OS X 10.10 vớitr: Illegal byte sequence
ssc

3
Từ ngẫu nhiên không phải là thực tế mặc dù.
dùng877329

1
@ssc Hãy thử cài đặt GNU tr( brew install coreutils) và thay thế trbằng gtr.
jdlm

tr trên máy Mac không hoạt động giống như trên Linux. Xem bài đăng này: unix.stackexchange.com/questions/141420/iêu
aakoch

Nếu bạn muốn awk trên Mac, bạn sẽ cần cài đặt gawk brew install gawkchỉ vì loại linux chạy trên mac.
PrestonDocks

5

AUR của Fedora và Arch Linux có lorem-ipsum-generatorgói:

lorem-ipsum-generator -p 10 -l

sẽ làm chính xác những gì bạn đang yêu cầu.

Một lựa chọn khác DIY:

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

Điều này xuất bashtài liệu thành thiết bị xuất chuẩn, đưa nó vào shufngẫu nhiên chọn 50 dòng, sau đó sedloại bỏ nhiều khoảng trắng và khoảng trắng hàng đầu, và cuối cùng fmtđịnh dạng nó thành các dòng dài khoảng 90 ký tự.

Tất nhiên đây chỉ là điểm khởi đầu và bạn có thể cần phải tinh chỉnh đầu ra sed, trvà điều này sẽ giúp ích cho các trình điều khiển chuỗi khác.

shuf, fmttrlà một phần của coreutils(trong đó có một cơ hội tuyệt vời bị đã được cài đặt trên phân phối GNU / Linux của bạn).


Tôi đã sửa chương trình sed của bạn một chút và thêm một đầu vào đường ống để bạn có thể chọn số lượng dòng bạn muốn:info -a bash -o - | shuf -n50 | sed -n 's/ */ /g;s/^ //;/./p' | fmt -w 90 | head -8
OscarJ

2

Mặc dù về mặt kỹ thuật không phải Lorem Ipsum hoặc nhị phân cục bộ, có một API trên Metaphorpsum có thể xuất văn bản tương tự nhưng bằng tiếng Anh. Tôi gọi nó curlnhư thế:

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

Tốt hơn hết, bạn có thể xác định lệnh gọi API là một hàm trong hồ sơ bash hoặc các tập lệnh như thế này:

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

Sau đó, bạn có thể sử dụng nó theo cách rất giống với ví dụ của bạn:
loremipsum paragraphs 10 >> file1.txt


1

Lệnh sau đây rất hữu ích cho tôi trong nhiều tình huống:

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

Điều này cung cấp 50 dòng trong đó các ký tự không theo thứ tự chữ cái thu được ngẫu nhiên từ base64 /dev/urandomđã được thay thế bằng khoảng trắng : sed 's/[^[:alpha:]]/ /g'. Mỗi dòng có chỉ số là bội số của 10 được thay thế bằng chuỗi trống (để mô phỏng phân tách các đoạn) : awk '{print(0==NR%10)?"":$1}'.

Bạn có thể thêm | awk '{ print NR,$0 }'vào cuối để có được các dòng được đánh số (hoặc bất kỳ dòng nào đáp ứng nhu cầu của bạn). Một bash-script thực thi lipsumchấp nhận số lượng dòng làm đối số có thể hữu ích.

#!/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) Lệnh awk của bạn loại bỏ mọi dòng thứ mười. Nó không quan trọng đối với văn bản ngẫu nhiên, nhưng đối với các ứng dụng ít tầm thường hơn, bạn có thể muốn sử dụng awk '{print}0==NR%10{print""}'để thêm một dòng trống sau mỗi dòng thứ mười. (2) Có, awk '{ print NR,$0 }'sẽ in số dòng, nhưng lưu ý rằng có những công cụ khác được thiết kế riêng để làm điều đó (như nlvà  cat -n).
G-Man nói 'Phục hồi Monica'

Cảm ơn @ G-Man. (1) Đối với các ứng dụng ít tầm thường hơn, bạn có thể xem xét base64 /dev/urandom | sed '{0~10 s/^.*//;0~10!s/[^A-z]/ /g;50q0}'nhưng ứng dụng này có vẻ ít rõ ràng hơn đối với tôi. (2) Lưu ý rằng trong trường hợp này, nlcat -nkhông đưa ra cách đánh số dòng giống nhau.
ninfito


0

Tôi đã thực hiện một giải pháp ngoại tuyến đơn giản bằng một trong nhiều trình tạo ipsum lorem trên web. Lưu trữ một lượng văn bản vừa phải - nói 20 đoạn - trong một tệp và làm cho tập lệnh sau có thể thực thi được:

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


0

Tạo văn bản ipsum lorem ngẫu nhiên bằng API Metaphorpsum

Mặc định là 3 câu

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

BOUNS: tránh tiến trình cuộn tròn, xóa% khỏi đầu ra và thêm vào bảng tạm của bạn để dễ dán, trong khi vẫn hiển thị cho thiết bị xuất chuẩn

Ví dụ sử dụng # 1:

lorem

Đó là một thực tế không thể phủ nhận, thực sự; người bắt đầu là một kẻ phá đám. Người ta không thể tách các giáo sư khỏi khí buồn. Rất ít người có thể đặt tên cho một loại dầu không được đánh giá cao mà không phải là họ hàng.

Ví dụ sử dụng # 2:

lorem 1

Các shrinelike Thụy Điển đến từ một xi-rô đầu tiên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.