Grep没有认识到所有新行

时间:2013-05-30 19:04:14

标签: encoding grep newline textwrangler textutils

我对脚本非常陌生 - 事实上,我所做的大部分内容最终都被放入Mac的Automator中作为“运行Shell脚本”。所以请原谅,好吧,一切。

基本上,我正在建立一个网络语料库。因此,我从网上下载.html文件,并使用textutil将它们转换为.txt文件。然后我将它们连接为corpus.txt,并使用grep命令“清理”corpus.txt以删除诸如以数字开头的行,或以数字结尾,或以标点符号等开头的内容。

问题在于,有时候,grepping不起作用。例如,当我尝试

grep -v ^[0123456789] corpus.txt > corpus2.txt

我仍然在corpus2.txt中以数字开头。类似地,

awk '!x[$0]++' corpus3.txt > deduped.txt

并没有删除Textedit中的重复线条。

我认为这与文件中的新行类型有关。我的理由是,当我在Textwrangler中打开文件时,显示为换行符的内容不会出现。在换行的位置,似乎有一个空格,其次是三个看似没有宽度的看不见的东西。我无法将它们复制到终端中,所以我不能用换行符替换它们,据我所知。

我尝试用不同的UTF编码保存已转换的html文件和连接的txt文件

find temp2 -type f -print0 | xargs -0 -P 4 textutil -convert txt -encoding UTF-32

但这没有帮助。我甚至无法弄清楚如何学习文本中出现的新行。基本上,我期望的最终结果是,在Textedit中看到的所有换行都被视为grep,awk和sed中的换行符。是否有可以执行此转换的脚本?我到底需要转换什么?

再次抱歉我的无知。我是一名社会科学专业的学生,​​肯定不在堪萨斯州了。

0 个答案:

没有答案