Missing Semester 学习笔记 - Data Wrangling
Contents
本节会介绍如何将数据的一种格式转换到另一种格式,也就是对数据的整理。
目录如下:
- Course overview + the shell
- Shell Tools and Scripting
- Editors (Vim)
- Data Wrangling(数据整理)
- Command-line Environment
- Version Control (Git)
- Debugging and Profiling
- Metaprogramming
- Security and Cryptography(安全和密码学)
- Potpourri(大杂烩)
- Q&A
我们可以使用journalctl来查询系统的日志,然后使用grep将想要得到的信息进行过滤:
|
|
你会看到控制台会一次性显示很多与intel相关的日志信息,为了便于查看,可以使用less命令进行翻页。
|
|
当然,这里会介绍一个强大的“流编辑器”工具sed,我们可以使用一些简短的命令(例如正则表达式)来修改文件,而不是直接操作文件的内容。
比较常用的是s,也就是进行替换命令。它的格式为s/REGEX/SUBSTITITION,其中,REGEX需要使用正则表达式,而SUBSTITITION是用于替换匹配结果的文本。例如:
|
|
这里的/.*intel /表示可以匹配任何以若干任意字符开头,并且包含intel的字符串。常见的正则表达式如下:
.:除了空格之外的任意单个字符。*:匹配前面字符零次或多次。+:匹配前面字符一次或多次。[abc]:匹配 a、b、c 中的任意一个。(RX1 | RX2):任何能够匹配RX1或RX2的结果。^:行首。&:行尾。
这里对[abc]的使用给出一个实例。
|
|
正如你所看到的,对于字符串aba来说,当遇到s/[ab]//时,会将首个a替换为空。而对于字符串bba来说,当遇到s/[ab]//时,会将首个b替换为空。
你也可以使用g来过滤出不在[ab]中的字符,如下:
|
|
还可以进行一些其它的应用,如下:
|
|
通篇看下来,文章主要介绍了sed、awk的使用,并结合正则表达式来进行一些数据整理的操作。对于正则表达式来说,可以使用在线调试工具 Regex101 来帮助你更好的理解它的使用。