我对脚本完全陌生 - 事实上,我所做的大部分脚本最终都作为“运行 Shell 脚本”放入 Mac 的 Automator 中。所以请原谅,好吧,一切。
基本上,我正在建立一个网络语料库。因此,我正在从网上下载 .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 中都被视为换行符。是否有可以执行此转换的脚本?我到底需要转换什么?
再次为我的无知感到抱歉。我是一名社会科学专业的学生,当然现在不在堪萨斯了。