linux终端分割获取指定部分的数据

示例:

查看git历史有哪些提交作者

git log | awk -F 'Author:' '{print $2 }' | awk -F '<' '{print $1}' | sort | uniq | tee author.txt

分析:

1、查看git日志的格式

commit 5b19a21a1dd237ddd8679fa91f7ba623c5a0f357
Author: qingshan <zqunor@foxmail.com>
Date:   Mon Dec 23 11:33:18 2019 +0800

    {具体的提交信息}

需要获取的信息是 qingshan, 介于Author: 和邮箱地址之间

2、以指定内容切分,并获取相应部分的数据

以'Author: '为分隔符, 并获取切分后的第二个元素,即qingshan ...., 从作者后包括邮箱等的信息

 awk -F 'Author:' '{print $2 }'

以邮箱标记的 '<' 为分隔符, 并获取切分后的第一个元素,即qingshan, 只包括作者信息

awk -F '<' '{print $1}'

3、调整格式,按作者名称首字母排序,去掉空行 sort

sort

4、去重 uniq

uniq

5、输出到指定文件

只输出到文件,不在终端显示

> author.txt

输出到文件,并在终端显示 tee

tee author.txt
posted @ 2019-12-25 10:31  程序小工  阅读(1715)  评论(0编辑  收藏  举报