以UTF-8格式解析/排序/消除重复的大型信息矩阵

以UTF-8格式解析/排序/消除重复的大型信息矩阵,utf-8,terminal,Utf 8,Terminal,我有一个UTF-8格式的大文件(我从iso-8859-1格式编码),我在mac终端上打开了它 我一直在尝试使用parse.date函数将其中一个列字段中的数据转换为日期形式 我还需要过滤某个列字段上的所有行(每行代表一个公司,每列代表每个公司的不同数据字段:即创始人、位置、创建年份等) 作为奖励,我想消除重复的数据以及 最后,我想对这些数据进行分析,通过不同的列字段对数据进行排序,并处理生存曲线 我一直在互联网上搜寻合适的终端命令来解决这个问题。有人能告诉我如何开始吗 第一个问题是分离字段,

我有一个UTF-8格式的大文件(我从iso-8859-1格式编码),我在mac终端上打开了它

我一直在尝试使用
parse.date
函数将其中一个列字段中的数据转换为日期形式

我还需要过滤某个列字段上的所有行(每行代表一个公司,每列代表每个公司的不同数据字段:即创始人、位置、创建年份等)

作为奖励,我想消除重复的数据以及

最后,我想对这些数据进行分析,通过不同的列字段对数据进行排序,并处理生存曲线

我一直在互联网上搜寻合适的终端命令来解决这个问题。有人能告诉我如何开始吗


第一个问题是分离字段,
我假设字段是以制表符分隔的

cat file.txt | sort -t$'\t' -k 2
如果有选项卡和空格混乱在一起,
我假设字段中没有连续的空格。
所以我会这样写

cat file.txt |  sed -e 's/\s\+/\t/' | sort -t$'\t' -k 2
这将根据第2列对file.txt进行排序

  • 如果第2列是数字,请添加-n选项
  • 如果您想要稳定排序(尽可能保留以前的排序),请添加-s选项
  • 如果要消除重复项,请添加-u选项

    cat file.txt | sort -t$'\t' -k 2 -n -s -u
    
有关更多详情

man sort

(我不知道parse.date函数。)

到目前为止您尝试了什么?如果你在谷歌上研究终端命令和管道,这听起来似乎不是什么大问题。我已经搜索了很多终端命令,开始解析数据,并使用parse.date将字段“year created”转换为date,但没有发现任何有用的东西。在终端命令行方面没有太多的经验,所以我希望在这里得到一些指导。您能编辑您的答案,向我们展示您迄今为止使用过的命令、您开始使用的数据(可能只有2-3行)以及最终使用的数据吗。我想你可以尝试在grep中使用正则表达式,然后进行查找、更改,然后替换相关值。我还没有尝试过任何命令,因为我还没有找到任何我觉得可以尝试的适用命令。很抱歉我没有做基础工作,就像我说的,我正在努力学习如何在终端中从头开始处理这么大的文件。另外,我还不熟悉堆栈,并尝试添加数据的屏幕截图,但由于我的声誉得分,无法添加图像。有关于如何共享数据图像的提示吗?到目前为止,我使用的唯一命令是将文件作为UTF-8打开(文件名为DB_ARCHIVE):$iconv-f iso-8859-1-t UTF-8 DB_ARCHIVEAh!如果你把这个链接放在评论里,我会编辑你的问题,把它包括进去。关于终端,我的建议是将所有内容分解为尽可能小的步骤。还可以查看手册页或一些bash教程。