工欲善其事,必先利其器之-善用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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章