Fra*_*ank 23 shell terminal text
有没有像' lorem ipsum generator'这样的东西?我知道它存在于 Latex 中,甚至存在于 LibreOffice 中,但我正在寻找终端命令。我想输入类似的内容loremipsum 10 >> file1.txt,这会给我 lorem ipsum 的前 10 个段落,每个段落以一个 LF 字符结尾,每个段落之间有 1 条空白线。并且输出将被重定向到当前目录中名为 file1.txt 的文件。
Mar*_*rco 16
您可以使用 perl 库libtext-lorem-perl。这是一个简短的示例,可以随意扩展它以解析命令行参数等。
#!/usr/bin/env perl
use Text::Lorem;
my $text = Text::Lorem->new();
$paragraphs = $text->paragraphs(10);
print $paragraphs;
Run Code Online (Sandbox Code Playgroud)
小智 9
在 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
Run Code Online (Sandbox Code Playgroud)
必须受另一个命令的限制或无限地生成文本
小智 8
虽然从技术上讲不是Lorem Ipsum或本地二进制文件,但Metaphorpsum上有一个 API ,可以输出类似的文本,但是英文的。curl我这样 称呼它:
curl http://metaphorpsum.com/sentences/3curl http://metaphorpsum.com/paragraphs/20更好的是,您可以将 API 调用定义为 bash 配置文件或脚本中的函数,如下所示:
loremipsum () {
if [ "${1}" = "" ] || [ "${2}" = "" ]; then
echo "Usage: loremipsum [paragraphs, sentences] [integer]"
else
curl -s http://metaphorpsum.com/"${1}"/"${2}" && printf "\n"
fi
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以按照与示例非常相似的方式使用它:
loremipsum paragraphs 10 >> file1.txt
Fedora和 Arch Linux 的AUR有一个lorem-ipsum-generator包:
lorem-ipsum-generator -p 10 -l
Run Code Online (Sandbox Code Playgroud)
会做你所要求的。
另一个 DIY 选择:
info bash -o -|shuf -n50|sed 's/ */ /g;s/^ //'|fmt -w 90
Run Code Online (Sandbox Code Playgroud)
这bash会将文档输出到 stdout,通过管道将shuf其随机选择 50 行,然后sed删除多个前导空格,最后将其fmt格式化为大约 90 个字符长的行。
当然,这只是一个起点,您可能需要优化输出,为此sed,tr和其他字符串操纵器会有所帮助。
shuf,fmt并且tr是coreutils(很有可能已经安装在您的 GNU/Linux 发行版上)的一部分。