4. 数据整理

1.学习一下这篇简短的 交互式正则表达式教程.

RegexOne - Learn Regular Expressions - Lesson 1: An Introduction, and the ABCs

2.统计words文件 (/usr/share/dict/words) 中包含至少三个a 且不以's 结尾的单词个数。

cat words | tr A-Z a-z | grep -E '^([^a]*a){3}' | grep -v "'s$" | wc -l

这些单词中,出现频率前三的末尾两个字母是什么?

cat words | tr A-Z a-z | grep -E '^([^a]*a){3}' | grep -v "'s$" | sed -E "s/.*([a-z]{2})$/\1/" | sort | uniq -c | sort -rn | head -3

 sed的 y命令,或者 tr 程序也许可以帮你解决大小写的问题。共存在多少种词尾两字母组合?

cat words | tr A-Z a-z | grep -E '^([^a]*a){3}' | grep -v "'s$" | sed -E "s/.*([a-z]{2})$/\1/" | sort | uniq | wc -l

还有一个很 有挑战性的问题:哪个组合从未出现过?

#!/bin/bash

for i in {a..z}
do
	for j in {a..z}
	do
		echo "$i$j"
	done
done
/all_combin.sh > all_com.txt
cat /usr/share/dict/words | tr A-Z a-z | grep -E '^([^a]*a){3}' | grep -v "'s$" | sed -E "s/.*([a-z]{2})$/\1/" | sort | uniq > part.txt
comm -23 all_com.txt part.txt

3.进行原地替换听上去很有诱惑力,例如: sed s/REGEX/SUBSTITUTION/ input.txt > input.txt。但是这并不是一个明智的做法,为什么呢?还是说只有 sed是这样的? 查看 man sed 来完成这个问题。

4.找出您最近十次开机的开机时间平均数、中位数和最长时间。在Linux上需要用到 journalctl ,而在 macOS 上使用 log show。找到每次起到开始和结束时的时间戳。

平均数

 journalctl -q | grep "Startup finished in" | sed -E 's/(.*)s\.$/\1/' | tail -10 | gawk '{print $NF}' | sort -n | paste -s -d "+" | bc | gawk '{print $1 /10}'

中位数

journalctl -q | grep "Startup finished in" | sed -E 's/(.*)s\.$/\1/' | tail -10 | gawk '{print $NF}' | sort -n | paste -s | gawk '{print ($5 + $6) / 2}'

最长时间

journalctl -q | grep "Startup finished in" | tail -10 | gawk '{print $NF}' | sort -n | tail -1

5.查看之前三次重启启动信息中不同的部分(参见 journalctl-b 选项)。将这一任务分为几个步骤,首先获取之前三次启动的启动日志,也许获取启动日志的命令就有合适的选项可以帮助您提取前三次启动的日志,亦或者您可以使用sed '0,/STRING/d' 来删除STRING匹配到的字符串前面的全部内容。然后,过滤掉每次都不相同的部分,例如时间戳。下一步,重复记录输入行并对其计数(可以使用uniq )。最后,删除所有出现过3次的内容(因为这些内容是三次启动日志中的重复部分)。

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值