关于tools:使用-Shell-进行数据整理学习笔记

写在后面:本篇内容来自于 MIT 推出的课程:计算机教育中缺失的一课,这门课程介绍了命令行、弱小的文本编辑器的应用、应用版本控制系统提供的多种个性等等。中文课程主页:https://missing-semester-cn.github.io/ 本篇为课程的第4节,主题为数据整顿。 大多数状况下,数据整顿须要您可能明确哪些工具能够被用来达成特定数据整顿的目标,并且明确如何组合应用这些工具。 获取服务器日志: ssh myserver journalct > journalsed:应用正则表达式进行替换,用法, sed 's/.*Disconnected from //', 将这一部分替换为空。 s/REGEX/SUBSTITUTION/ 捕捉组,如果想要保留表达式中的一部分匹配信息,能够在SUBSTITUTION中应用 \1、\2 来示意其中的捕捉到的信息正则表达式的一些用法 . 除空格之外的”任意单个字符”(这里对吗,没有空格吗?)* 匹配后面字符零次或屡次+ 匹配后面字符一次或屡次[abc] 匹配 a, b 和 c 中的任意一个(RX1|RX2) 任何可能匹配RX1 或 RX2的后果^ 行首$ 行尾正则表达式默认是贪心匹配的,能够在 * 或 + 后增加 ? 来变为非贪心的模式测试正则表白是否正确:debug匹配任意一个单词( [^ ]+ 会匹配任意非空且不蕴含空格的序列) 其中 ^ 如果放在表达式最开始,代表从行首开始匹配;否则含意为“不蕴含”对输出数据排序: sort sort -n 会依照数字程序对输出进行排序(默认状况下是依照字典序排序 -k1,1 则示意“仅基于以空格宰割的第一列进行排序”。 ,n 局部示意“仅排序到第 n 个局部”,默认状况是到行尾。sort -r 能够倒序把间断呈现的行折叠为一行并应用呈现次数作为前缀: uniq -cssh myserver journalctl # 读取日志 | grep sshd | grep "Disconnected from" | sed -E 's/.*Disconnected from (invalid |authenticating )?user (.*) [^ ]+ port [0-9]+( \[preauth\])?$/\2/' # 获取用户名 | sort | uniq -c # 将用户名排序并合并 | sort -nk1,1 | tail -n10 | awk '{print $2}' | paste -sd, # 合并行,应用,分隔awk:是一种编程语言,十分长于解决文本 ...

May 8, 2021 · 2 min · jiezi