Questions tagged «text-processing»

通过程序,脚本等操作或检查文本

6
过滤无效的utf8
我有一个未知或混合编码的文本文件。我想查看包含无效UTF-8字节序列的行(通过将文本文件传送到某些程序中)。同样,我想过滤掉有效的UTF-8行。换句话说,我正在寻找。grep [notutf8] 理想的解决方案是可移植的,简短的并且可以推广到其他编码,但是如果您觉得最好的方法是烘焙UTF-8的定义,请继续。


13
匹配后如何打印所有行至文件末尾?
输入文件1为: dog 123 4335 cat 13123 23424 deer 2131 213132 bear 2313 21313 我给匹配从中的模式other file(如dog 123 4335从file2)。 我匹配该行的模式,dog 123 4335并且在打印不匹配行的所有行后,我的输出是: cat 13123 23424 deer 2131 213132 bear 2313 21313 如果仅使用无行地址仅使用模式,例如1s 如何匹配并打印行?

19
是否有用于处理csv文件的强大命令行工具?
我使用CSV文件,有时需要从命令行快速检查行或列的内容。在许多情况下cut,head,tail,和朋友将做的工作; 但是,割伤无法轻松应对以下情况 "this, is the first entry", this is the second, 34.5 在这里,第一个逗号是第一个字段的一部分,但cut -d, -f1不同意。在我自己编写解决方案之前,我想知道是否有人知道用于此工作的好工具。它至少必须能够处理上面的示例,并从CSV格式的文件返回一列。其他理想的功能包括根据第一行中给出的列名选择列的能力,对其他引用样式的支持以及对制表符分隔文件的支持。 如果您不了解这样的工具,但是对使用Bash,Perl或Python或其他常见脚本语言实现这样的程序有建议,那么我不会介意这样的建议。

3
我如何测试文本文件的编码…有效吗?它是什么?
我有几个.htm在Gedit中打开的文件,没有任何警告/错误,但是当我在中打开这些文件时Jedit,它警告我无效的UTF-8编码... HTML元标记表示“ charset = ISO-8859-1”。Jedit允许使用一个后备编码列表和一个编码自动检测器列表(当前为“ BOM XML-PI”),因此我的直接问题已经解决。但是,这让我开始思考:如果不存在元数据怎么办? 当编码信息不可用时,是否有一个CLI程序可以“猜测”哪些编码可能适用? 而且,尽管这是一个稍微不同的问题;是否有一个CLI程序来测试已知编码的有效性?

8
怎么把TXT转换成PDF?
我想将.txt文件转换为.pdf。我正在使用这个: ls | while read ONELINE; do convert -density 400 "$ONELINE" "$(echo "$ONELINE" | sed 's/.txt/.pdf/g')"; done 但这会产生一个“错误”-如果文本文件中有很长的一行,它不会被包裹。 输入文本 输出PDF - 同样,如果输出的PDF可以包含文本而不是文本图像,那也很好。 我有很多很多TXT文件。所以不想手工做。我需要一个自动解决方案,就像上面提到的那样。

5
从文件中删除最后一行
我sed 用来快速删除具有特定位置的行 sed '1d' sed '5d' 但是,如果我想删除文件的最后一行并且不知道行数怎么办(我知道我可以使用wc其他技巧来做到这一点)。 目前,采用一种变通方法与head和tail结合wc这样做。这里有任何曲折吗?

5
用实际值替换文件中的环境变量?
有没有一种简单的方法可以替换/评估文件中的环境变量?假设我有一个config.xml包含以下内容的文件: <property> <name>instanceId</name> <value>$INSTANCE_ID</value> </property> <property> <name>rootPath</name> <value>/services/$SERVICE_NAME</value> </property> ...等等。我想$INSTANCE_ID用INSTANCE_ID环境变量$SERVICE_NAME的值和SERVICE_NAMEenv var 的值替换文件。我不会事先知道需要哪个环境变量(或者,如果有人将新的环境变量添加到配置文件中,我不想更新脚本)。谢谢!

4
如何仅获得唯一结果而不必对数据进行排序?
$ cat data.txt aaaaaa aaaaaa cccccc aaaaaa aaaaaa bbbbbb $ cat data.txt | uniq aaaaaa cccccc aaaaaa bbbbbb $ cat data.txt | sort | uniq aaaaaa bbbbbb cccccc $ 我需要的结果是显示原始文件中的所有行,删除所有重复项(而不仅仅是连续的重复项),同时保持文件中语句的原始顺序。 在此示例中,我实际上正在寻找的结果是 aaaaaa cccccc bbbbbb 我uniq一般如何执行此广义操作?




4
从文件末尾到开头的Grep
我有一个大约30.000.000行(半径会计)的文件,我需要找到给定模式的最后一个匹配项。 命令: tac accounting.log | grep $pattern 给出了我需要的东西,但是它太慢了,因为操作系统必须先读取整个文件,然后再发送到管道。 因此,我需要快速的东西,可以从最后一行读取文件到第一行。

4
使用命令行注释/取消注释某些行的最简单方法
有没有一种方法可以使用命令行注释/取消注释shell / config / ruby​​脚本? 例如: $ comment 14-18 bla.conf $ uncomment 14-18 bla.conf 这将添加或删除#的标志bla.conf线14来18。通常我使用sed,但是我必须知道这些行的内容,然后执行查找替换操作,并且当一根以上的针头时,这将产生错误的结果(而我们只想替换第N个针一)。

1
如何使tr意识到非ASCII字符?
我正在尝试从文件(UTF-8)中删除一些字符。我正在tr为此目的使用: tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat 文件包含一些外来字符(例如“Латвийская”或“àé”)。tr似乎不了解它们:它将它们视为非Alpha并将其删除。 我尝试过更改某些语言环境设置: LC_CTYPE=C LC_COLLATE=C tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat LC_CTYPE=ru_RU.UTF-8 LC_COLLATE=C tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat LC_CTYPE=ru_RU.UTF-8 LC_COLLATE=ru_RU.UTF-8 tr -cs '[[:alpha:][:space:]]' ' ' <testdata.dat 不幸的是,这些都不起作用。 如何tr理解Unicode?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.