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 来帮助你更好的理解它的使用。