是否有类似“ lorem ipsum generator”的东西?我知道它存在于Latex中,甚至存在于LibreOffice中,但是我正在寻找终端命令。我想输入类似的内容loremipsum 10 >> file1.txt
,以便给我lorem ipsum的前10个段落,每个段落的末尾都有一个LF字符,并且在每个参数之间有一条空白线。输出将被重定向到当前目录中名为file1.txt的文件。
是否有类似“ lorem ipsum generator”的东西?我知道它存在于Latex中,甚至存在于LibreOffice中,但是我正在寻找终端命令。我想输入类似的内容loremipsum 10 >> file1.txt
,以便给我lorem ipsum的前10个段落,每个段落的末尾都有一个LF字符,并且在每个参数之间有一条空白线。输出将被重定向到当前目录中名为file1.txt的文件。
Answers:
您可以使用perl库libtext-lorem-perl
。这是一个简短的示例,请随时对其进行扩展以解析命令行参数等。
#!/usr/bin/env perl
use Text::Lorem;
my $text = Text::Lorem->new();
$paragraphs = $text->paragraphs(10);
print $paragraphs;
libtext-lorem-perl
软件包包含简单的lorem
命令,因此无需迫切需要自定义脚本。
发现这个在打击单行
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
必须由另一个命令限制或无限生成文本
tr: Illegal byte sequence
tr
(brew install coreutils
)并替换tr
为gtr
。
brew install gawk
仅由于在Mac 上运行的linux类型而需要安装gawk 。
Fedora和Arch Linux的AUR有一个lorem-ipsum-generator
软件包:
lorem-ipsum-generator -p 10 -l
将完全按照您的要求进行。
另一个DIY替代品:
info bash -o -|shuf -n50|sed 's/ */ /g;s/^ //'|fmt -w 90
这bash
会将文档输出到stdout中,通过管道将shuf
其随机选择50行,然后sed
删除多个空格和前导空格,最后将其fmt
格式化为大约90个字符长的行。
当然,这只是一个起点,您可能需要优化输出,为此sed
,tr
其他字符串操纵器将有所帮助。
shuf
,fmt
并且tr
是的组成部分coreutils
(很有可能已经安装在您的GNU / Linux发行版中)。
info -a bash -o - | shuf -n50 | sed -n 's/ */ /g;s/^ //;/./p' | fmt -w 90 | head -8
虽然从技术上讲不是Lorem Ipsum或本地二进制文件,但是Metaphorpsum上有一个API ,可以输出类似的文本,但可以用英语。我这样称呼它curl
:
curl http://metaphorpsum.com/sentences/3
curl http://metaphorpsum.com/paragraphs/20
更好的是,您可以在bash配置文件或脚本中将API调用定义为一个函数,如下所示:
loremipsum () {
if [ "${1}" = "" ] || [ "${2}" = "" ]; then
echo "Usage: loremipsum [paragraphs, sentences] [integer]"
else
curl -s http://metaphorpsum.com/"${1}"/"${2}" && printf "\n"
fi
}
然后,您可以按照与示例非常相似的方式使用它:
loremipsum paragraphs 10 >> file1.txt
在许多情况下,以下命令对我很有用:
base64 /dev/urandom | awk '{print(0==NR%10)?"":$1}' | sed 's/[^[:alpha:]]/ /g' | head -50
这给出了50行,其中随机获得的非字母字符base64 /dev/urandom
已由空格代替:sed 's/[^[:alpha:]]/ /g'
。索引为10的倍数的每一行都由空字符串替换(以模拟各段的分离):awk '{print(0==NR%10)?"":$1}'
。
您可以| awk '{ print NR,$0 }'
在末尾添加以获得编号的行(或任何其他符合您需要的行)。lipsum
接受行数作为参数的可执行bash脚本可能会有用。
#!/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
awk '{print}0==NR%10{print""}'
每十行之后添加一个空白行。(2)是,awk '{ print NR,$0 }'
将打印行号,但是请注意,还有其他专门设计用于执行此操作的工具(如nl
和 cat -n
)。
base64 /dev/urandom | sed '{0~10 s/^.*//;0~10!s/[^A-z]/ /g;50q0}'
但是对于我来说,这似乎不太清楚。(2)注意,在这种情况下,nl
并cat -n
没有给予同样的线路编号。
找到了另外两个要使用的python库
Lorem Ipsum Generator网站:-http: //lorem-ipsum.perbang.dk/ (您可以选择段落的nb等)
lorem() {
curl -s http://metaphorpsum.com/sentences/${1-3} | pbcopy
pbpaste | grep .
}
BOUNS:避免卷曲进度,从输出中删除%,并添加到剪贴板以便于粘贴,同时仍显示到stdout
lorem
确实,这是一个不可否认的事实。起动器是支腿。一个人无法将教授与喜怒无常的气体分开。很少有人能说出一种非赞誉的未赞美的油。
lorem 1
像神rine的瑞典人来自最重要的糖浆。