Skip to content

Data wrangling

约 911 个字 2 行代码 预计阅读时间 3 分钟

本节列举一些命令行常用的数据处理工具

Sed

Sed 是 Stream editor 流编辑器,可以接受管道输入,对每一行进行处理,然后输出到标准输出。

sed [OPTION] 'edit-command' [input-file]`

选项是一些用于控制 sed 命令行为的参数,常见的有:

  • -n 不输出到标准输出
  • -e 以后的参数作为脚本
  • -f 以后的参数作为脚本文件
  • -i 直接修改文件
  • -r 使用扩展正则表达式
  • -E 同上
  • -r 使用基础正则表达式
  • -h 不打印文件名

sed的编辑命令可以使用正则表达式来指定匹配模式,并通过替换、删除、插入等命令来修改文本.一些常见的 sed 编辑命令包括:

  • s/pattern/replacement/:替换指定模式的文本。
  • d:删除匹配到的行。
  • p:打印(输出)匹配到的行。
  • i:在指定行前插入文本。
  • a:在指定行后追加文本。
正则表达式
  • 正则表达式可以实现字符串匹配,大部分字符都保持愿意除了一些特殊的
  • . 代表除了换行任何的单字符
  • * 前一个重复 0-无限次
  • + 前一个重复 1-无限次
  • [abc] abc 任意一个
  • (RX1|RX2) 表达式一或者二
  • ^ 行首
  • $ 行尾
  • () 捕获,位于补货内的字符串可在被替代部分用、1 \2 \3 引用

Awk

awk 是一种强大的文本处理工具,用于从结构化文本数据中提取和操作信息.它可以逐行读取输入文件或标准输入的文本,根据指定的模式和动作进行匹配、处理和输出。

awk 的基本语法如下:

awk 'pattern { action }' file

其中,pattern 是用于匹配文本的模式,action 是在匹配到的文本上执行的操作,file 是待处理的输入文件。

awk 的工作原理是逐行读取输入文本,并根据指定的模式进行匹配.当某行匹配到指定模式时,执行相应的动作.动作可以是打印行、计算、赋值变量、进行条件判断等。

awk 提供了丰富的内置功能和变量,使其能够对文本进行灵活处理.一些常用的 awk 功能包括:

  • 字段分割:awk 默认将每一行以空格或制表符为分隔符划分为多个字段,可以通过 $n 的形式引用字段(例如 $1$2).
  • 模式匹配:可以使用正则表达式进行模式匹配,指定匹配的文本模式。
  • 内置变量:awk 提供了许多内置变量,如 NR(当前行数)、NF(当前行的字段数)和 $0(整行文本)等。
  • 内置函数:awk 提供了丰富的内置函数,如字符串处理函数、数学函数、日期函数等。

以下是一个简单的示例,展示了如何使用 awk 提取文件中以冒号分隔的第一列和第二列,并输出它们:

awk -F':' '{ print $1, $2 }' file.txt

awk 是一种非常实用的文本处理工具,适用于处理结构化的文本数据,如日志文件、CSV 文件、报告等.它具有强大的功能和灵活性,可以大大简化文本处理任务,提高数据分析和转换的效率。

Aided Command line Tools

辅助使用的命令行工具

  • grep: 筛选出含有制定内容的行
  • sort: 排序
  • uniq: 去重
  • tail: 截图头部几条
  • head: 截取尾部几条
  • paste: 通过指定的间隔字符链连接两行
  • bc: 计算器
  • xargs: 把 stdin 转换为参数调用后续程序

Comments