工欲善其事,必先利其器之-善用SHELL命令/工具处理文件

分享前言

在工作过程中经常处理一下文件或分析Log日志,时常会使用到shell脚本和shell命令去提高自己的工作效率。shell脚本以及常用的命令DIY性很强,能快速解决我们工作中遇到的小需求
这里演于一个案例跟大家分享下自己的实践(过程中使用shell命令的方式不是最佳的,自己在这方面确实没有深入的研究),主要是想跟大家分享解决之类问题的思路,提倡大家多使用shell脚本和基础的命令。(PS:建议大家深入学习与撑握shell常用命令,解决方案的思路很重要,但工具的用法不熟悉,整体效率上就大打拆扣了呀!比如我)

问题说明

** 找出两个Adroid项目的中重名的排版文件**
分而治之,问题拆解为两个
1、如何找出项目中所有的排版文件
2、如何对比文件名交集,即内容的交集

操作示例

找出文件

查找文件最想到的是find命令,文件的特征是.xml后缀 + 在res/layout目录了
那我们可以这样

# 在工程1目录下
find . -type f -iname *.xml | grep res/layout  > project1.txt
awk -F/ '{print $NF}' project1.txt | sort >project1-xml.txt
# 在工程2目录下
find . -type f -iname *.xml | grep res/layout  > project2.txt
awk -F/ '{print $NF}' project2.txt | sort >project2-xml.txt

查找交集

# -1    不输出文件1 特有的行
# -2    不输出文件2 特有的行
#  -3    不输出两个文件共有的
# -12 两个文件的交集,共有的行
comm -12 project1-xml.txt project2-xml.txt

参考文档

发布了231 篇原创文章 · 获赞 123 · 访问量 67万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章