🗒️FIT 1043 ASGN 2

Cs, Go!

FIT 1043|2025-10-14|最后更新: 2025-10-15|
Place
人员

Part A

🧩 A1.1 查看文件大小


第9周内容
目标: 查出 FIT1043_Dataset.gz 的大小(MB)
命令:
解释:
  • ls -lh:显示详细信息,h 表示以 MB/KB 显示。
  • du -h:显示文件占用空间大小。
 

🧩 A1.2 确定文件分隔符


第10周内容
目标: 找出 FIT1043_Dataset.gz 文件中用来分隔列的符号。
命令:

解释:
  • cat:读取文件内容。
  • |:把上一步的输出传给下一个命令。
  • gunzip:解压缩(但只是读取,不会真正解压到磁盘)。
  • head:只显示前 10 行,方便查看格式。

分析结果:
你会看到类似这样的输出:
可以看到各列之间使用 逗号(,) 分隔。
 

🧩 A1.3 统计文件行数


第10周内容
目标: 计算 FIT1043_Dataset.gz 文件共有多少行。
命令:

解释:
  • cat:读取压缩文件。
  • gunzip:在不解压的情况下读取内容。
  • |:把解压后的内容传给下一个命令。
  • wc -l:统计行数(每一条推文是一行)。

输出示例:
表示共有 1,600,000 行数据
 

🧩 A2.1 统计唯一用户数量


第10周内容
目标:
找出数据集中有多少个不同的用户(user 列)。
命令:

解释:
  • awk -F',' '{print $5}'
    • 以逗号为分隔符,打印第 5 列(用户列)。
  • sort:将用户名字排序(uniq 需要相邻重复才能识别)。
  • uniq:去除重复的用户名。
  • wc -l:统计唯一用户名的数量。

输出示例:
说明数据集中有 65,789 个不同用户
 

🧩 A2.2 推文日期范围(假设已按时间排序)


第10周内容
目标:
找出推文的最早日期和最晚日期。
命令:

解释:
  • awk -F',' '{print $3}':提取第 3 列(日期列)。
  • head -1:显示第一行(最早日期)。
  • tail -1:显示最后一行(最晚日期)。
    • 👉 因为题目说明数据按时间顺序排列,所以可以直接取首尾。

输出示例:
 

🧩 改进版:A2.3 按真实时间排序(年 → 月 → 日)


需要自己网上搜索
目标:
在数据无序时,按真实日期顺序找出最早和最晚日期。
命令:

解释:
  • 考虑到英文中如果按照默认的sort 排序,则
    • 四月(Apr) < 八月(Aug) < 十二月(Dec) - 输出顺序混乱
  • 需要使用 sort command中的K选项

输出示例:
 
Loading...