我需要 PDF 文件到文本,以便我可以从命令行批量搜索它们。是否有一些适用于 Ubuntu、OBSD 或类似发行版的转换器?
也许相关的帖子,这里有 ubuntu 的 OCR 。
POSIX 将文本文件定义为:
包含组织成零个或多个行的字符的文件。这些行不包含 NUL 字符,并且长度不能超过 {LINE_MAX} 个字节,包括 <newline> 字符。尽管 POSIX.1-2017 不区分文本文件和二进制文件(参见 ISO C 标准),但许多实用程序仅在对文本文件进行操作时产生可预测或有意义的输出。具有此类限制的标准实用程序总是在其 STDIN 或 INPUT FILES 部分中指定“文本文件”。
来源:http : //pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_403
但是,有几件事我觉得不清楚:
文本文件必须是普通文件吗?在上面的摘录中没有明确说明文件必须是常规文件
如果文件只包含一个字符和一个字符(即不以换行符结尾的单个字符),是否可以将文件视为文本文件?我知道这个问题可能听起来很挑剔,但他们使用“字符”一词而不是“一个或多个字符”。其他人可能不同意,但如果他们的意思是“一个或多个字符”,我认为他们应该明确地说出来
在上面的摘录中,它提到了“线条”。我发现了四个名称中带有 line 的定义:“Empty Line”、“Display Line”、“Incomplete Line”和“Line”。我是否应该推断它们的意思是“线”,因为它们省略了“空”、“显示”和“不完整”——或者所有这四个定义都被认为是上面摘录中的一条线?
此文本块之后出现的所有问题都取决于推断“字符”表示“一个或多个字符”:
此文本块之后的所有问题都取决于推断,在上面的摘录中,一行被定义为“行”,并且应排除名称中包含“行”的其他三个定义:
“零行或多行”中的“零”是否意味着如果文件包含一个或多个未以换行符终止的字符,则仍可将其视为文本文件?
“零行或多行”是否意味着一旦单个“行”(0 个或多个字符加上终止换行符)开始发挥作用,最后一行成为“不完整行”(一个或多个非文件末尾的换行符)?
“无 [无行] 的长度可以超过 {LINE_MAX} 个字节,包括换行符”是否意味着文本文件中任何给定“行”中允许的字符数有限制(顺便说一句, Ubuntu 18.04 和 FreeBSD 11.1 上的 LINE_MAX 是“2048”)?
如何在每次更改时立即自动刷新在终端中打开文本文件?
我看过vimwith :set autoread,但它需要一些基本输入(例如里面的按键vim)来触发刷新。
我希望自动刷新是免提的。是否有一些黑客可以做到这一点?
我正在使用 Crunchbang 11,但我对终端很满意。
有没有像' lorem ipsum generator'这样的东西?我知道它存在于 Latex 中,甚至存在于 LibreOffice 中,但我正在寻找终端命令。我想输入类似的内容loremipsum 10 >> file1.txt,这会给我 lorem ipsum 的前 10 个段落,每个段落以一个 LF 字符结尾,每个段落之间有 1 条空白线。并且输出将被重定向到当前目录中名为 file1.txt 的文件。
我注意到我可以在没有扩展名的情况下阅读文本文件.txt。怎么来的?我应该使用或不使用.txt扩展名保存这些文件吗?
另外,.ini文件呢?我通常这样使用它们:config.ini,我应该删除这里的扩展吗?
任何关于 Linux 如何处理文件扩展名的通用资源都会很有用。
我有一个每天增长大约 200,000 行的文件,它都是由三行块组成的:
1358726575123 # key
Joseph Muller # name
carpenter # job
9973834728345
Andres Smith
student
7836472098652
Mariah Anthony
dentist
Run Code Online (Sandbox Code Playgroud)
现在,我有另一个文件,我从中提取了大约 10,000 个关键模式,例如1358726575123. 然后我for用这些模式运行一个循环,并且必须根据第一个文件检查它们。如果文件不包含此类模式,我会将模式保存在第三个文件中以供进一步处理:
for number in $(grep -o '[0-9]\{12\}' file2); do # finds about 10.000 keys
if ! grep -q ^$number$ file1; then # file1 is a huge file
printf "$number\n" >>file3 # we'll process file3 later
fi
done
Run Code Online (Sandbox Code Playgroud)
示例代码 grep 一个巨大的文件 10,000 次,我在一整天内大约每分钟运行一次这个循环。
由于巨大的文件不断增长,我该怎么做才能使这一切更快并节省一些 CPU?我想知道以某种方式通过其键(如果是,如何?)或使用 db 而不是纯文本对文件进行排序会有所帮助...
如何配置快捷键以将文本字符串发送到当前程序?
目的是更快地输入常用条目(电子邮件地址、街道地址、电话号码、用户名、最喜欢的报价等)。
除了输入文本之外,我不需要任何进一步的自动化。
Gentoo Linux (3.2.12-gentoo) Xfce 桌面环境(4.8 版)
GNUmd5sum命令有两种模式:二进制模式和文本模式。我想区别仅在于如何处理换行符?我对吗?
在 GNU/Linux 上,这两种模式总是产生相同的结果,所以-b和-t选项的唯一用途是指示在文件名之前使用的标志(*或)?
在什么情况下模式会产生不同的结果?在 Windows/MacOS 系统上?(这些平台的版本可用吗?)
locate ... | less 输出一条长路径,在终端中显示为几行,尽管它实际上是一行。
我通过用鼠标选择文本并点击Ctrl+ Shift+从终端复制路径C。当我将它粘贴到文本文件中时,我在文本中得到了不需要的更改行,与在终端中显示的方式完全相同。
但我记得有时我可以复制由 输出的长路径locate ... | less,而不会引入不需要的换行,有时我不能。我不知道我是否做了不同的事情。
所以我想知道如何确保问题不会发生?谢谢!
我的操作系统:Ubuntu 12.04。
我的终端:Gnome 终端 3.4.1.1
我正在运行一个不提供过滤其输出的方法的实用程序。输出文本中没有任何内容表明特定功能失败,但它确实显示为红色。输出太长,以至于最后当它报告一些错误时,我不能总是滚动查看发生错误的输出。
如何过滤掉非红色文本?
伪代码:
dolongtask | grep -color red
该命令也输出其他颜色,我需要能够过滤掉所有不是红色的文本。文本着色也是多行的。