测验:文本处理流水线
为什么uniq -c之前必须加sort?
- 这是因为uniq被设计为只接受排序的输入,所以会发生错误。
- 因为如果不进行排序,计数始终为 1。
- 这是因为 uniq 仅计算相邻的重复项。
- 按字母顺序显示输出
卷曲 -s URL | jq .items |在wc -l中curl失败,但脚本判断成功。为什么?
- 这是因为管道的退出代码默认为最后一条指令的退出代码。
- 即使失败,curl也会返回退出代码0
- 因为jq吞掉了错误
- 因为 set -e 不适用于管道
我们需要从日志中提取一个字段并将其求和。最合适的工具是什么?
- grep
- awk
- sed
- 切
为什么通过管道处理40万行日志内存也不会爆?
- 这是因为 shell 会自动单独读取文件。
- 这是因为每个命令作为单独的进程同时执行并作为流发送。
- 这是因为内核无限期地增加管道缓冲区。
- 这是因为 grep 索引了整个文件。
猫访问.log |如果将 grep ERROR 更改为 grep ERROR access.log 会发生什么?
- 区分ERROR和错误的方式正在改变。
- grep 在文件输入上更准确地处理正则表达式
- 将两个命令合并为一个可以减少一半的内存使用量。
- 少一项不必要的流程和管道