一、Linux排序、去重、统计命令

1、sort:可对文本内容进行排序

image.png

-t和-k可以组合一起用,通过-t指定了以什么为分隔符后,利用-k在对第几列进行排序

2、uniq:去重命令

uniq命令只会检查相邻的两行内容是否重复,不会进行全文检索,需要全文进行去重的话可以配合排序进行

image.png

3、wc:统计文本数据

字节数包括空格和换行符

image.png

二、Linux高级命令

  1. curl命令:可连接网络,支持 HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件等功能。

常用参数:
-G : 使用get请求 curl默认就为get请求
-X : 指定使用post请求或get请求
-d : 添加请求参数,默认用post发送请求
-v : 显示通信请求的详细过程
-o : 将网页保存到本地
-x : 使用代理获取网页文本信息
-s : 过滤掉无用信息
-H: 携带Header信息 参考:
https://www.ruanyifeng.com/blog/2019/09/curl-reference.html

  1. # 使用8888代理请求baidu.com
  2. curl -x 127.0.0.1:8888 https://www.baidu.com
  3. # 使用post请求baidu
  4. curl -X POST https://www.baidu.com
  5. # 将百度保存到本地
  6. curl -o baidu.html https://www.baidu.com
  7. # 携带参数的post请求
  8. curl -d 'name=dingxiangban&language=java&price=10000' -X POST http://127.0.0.1:8888/lesson
  9. # 添加请求头
  10. curl -H 'Accept: text/xml' http://127.0.0.1:8089/my/resource
  1. jq:json提取命令

image.png
image.png
image.png

  1. # 优化json数据
  2. echo '{"a":"12","b":"10"} ' | jq .
  3. echo '[{"a":10,"b":20},{"c":30}]' | jq '.'
  4. # 提取a数据
  5. echo '{"a":"12","b":"10"} ' | jq .
  6. # 提取数组第一列的数据
  7. echo '[{"a":"12","b":"10"},{"c":"23"}]' | jq '.[0]'
  8. # 提取数组中所有的数据
  9. echo '[{"a":"12","b":"10"},{"c":"23"}]' | jq '.[]'
  10. # 提取数组中多个数据
  11. echo '[{"a":"12","b":"10"},{"c":"23"},{"d":"32"}]' | jq '.[0,2]'
  12. # 获取json数据中的value
  13. echo '{"a":"12","b":"10","c":"23"}' | jq '[.a,.b,.c]'
  14. # 将json数据,更换key后重组成新的json数据
  15. echo '{"a":"12","b":"10","c":"23"}' | jq '{"A":.a,"B":.b,"C":.c}'