婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 基于linux命令提取文件夾內特定文件路徑

基于linux命令提取文件夾內特定文件路徑

熱門標簽:地圖標注需要現場嗎 400電話辦理哪家好廠商 企業400電話辦理哪正規 網站上插入地圖標注內容 繽客網注冊時地圖標注出不來 地圖標注企業名稱侵權案件 重慶營銷外呼系統排名 鶴壁電銷外呼系統怎么安裝 工廠位置地圖標注

最近需要實現自動化搜尋特定文件夾下的特定文件,并且需要分別保存文件路徑與文件名。算然使用python的walk能夠實現,但是感覺復雜了些。于是想看看linux自帶的命令是否能完成這項工作。

環境

需要查找的目錄結構如下

. |____test | |____test2.txt | |____test.py | |____test.txt | |____regex.py |____MongoDB | |____.gitignore | |____cnt_fail.py | |____db

目標一:獲取所有py文件名

如果只使用find . -name '*.py'進行查找,得出的結果是包含路勁的

./test/test.py
./test/regex.py
./MongoDB/cnt_fail.py

我們只需要文件名的話可以使用linux提供的命令basename

利用basename將find的所有搜索結果進行處理我們需要使用find的參數-exec

最終的命令為:

find . -name '*.py' -exec basename {} \;

結果:

test.py
regex.py
cnt_fail.py

其中{} 用于與-exec選項結合使用來匹配所有結果,然后支取其文件名。

目標二:獲得所有py文件路徑,去重復,刪除開頭的“./”字符

linux也有獲取文件路徑的命令dirname

略微修改之前的命令能夠顯示所有文件路徑

find . -name '*.py' -exec dirname {} \;
搜索結果:

./test
./test
./MongoDB

可以看到路徑存在重復,linux去除重可以利用sort再添加-u參數,-u參數用于去除排序結果中的重復項
我們需要把上一個命令的輸出傳遞給sort作為輸入,很自然想到了管道

管道命令操作符是:|,它僅能處理經由前面一個指令傳出的正確輸出信息,也就是 standard output 的信息,對于 stdandard
error 信息沒有直接處理能力。然后,傳遞給下一個命令,作為標準的輸入 standard input.

添加sort之后的命令為

find . -name '*.py' -exec dirname {} \; | sort -u

運行結果結果為:

./MongoDB
./test

最后我們再利用cut刪除每一個路勁之前的./字符,參數-c3-意思提取字符串(起始位置為1)的第3個字符到最后的子串
最終命令為:

find . -name '*.py' -exec dirname {} \; | sort -u | cut -c3-

運行結果:

MongoDB
test

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:渭南 96 棗莊 鹽城 常州 東莞 日照 克拉瑪依

巨人網絡通訊聲明:本文標題《基于linux命令提取文件夾內特定文件路徑》,本文關鍵詞  基于,linux,命令,提取,文件夾,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于linux命令提取文件夾內特定文件路徑》相關的同類信息!
  • 本頁收集關于基于linux命令提取文件夾內特定文件路徑的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 万荣县| 襄城县| 尉犁县| 礼泉县| 扎赉特旗| 陈巴尔虎旗| 朝阳区| 黄梅县| 松潘县| 读书| 克什克腾旗| 常宁市| 洞头县| 龙陵县| 宣汉县| 康平县| 四川省| 凤山市| 应城市| 红河县| 潜山县| 南丹县| 阳东县| 江北区| 菏泽市| 博兴县| 浮梁县| 麻城市| 池州市| 阿拉善盟| 长兴县| 辽宁省| 寻乌县| 吴堡县| 察隅县| 阿克陶县| 梨树县| 鄂伦春自治旗| 册亨县| 瓮安县| 道孚县|