91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux命令如何提取文件夾內特定文件路徑

發布時間:2020-07-20 16:35:25 來源:億速云 閱讀:275 作者:小豬 欄目:服務器

這篇文章主要為大家展示了linux命令如何提取文件夾內特定文件路徑,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

最近需要實現自動化搜尋特定文件夾下的特定文件,并且需要分別保存文件路徑與文件名。算然使用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

以上就是關于linux命令如何提取文件夾內特定文件路徑的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

茌平县| 阜宁县| 德昌县| 饶河县| 滨州市| 三原县| 政和县| 安龙县| 东平县| 昌宁县| 东乡族自治县| 五指山市| 宜兴市| 卢氏县| 吉首市| 海南省| 陇川县| 白玉县| 普格县| 邵东县| 苍南县| 辽中县| 特克斯县| 临洮县| 县级市| 鲁甸县| 金溪县| 延边| 英山县| 勃利县| 临城县| 临沧市| 穆棱市| 祁东县| 巧家县| 林甸县| 枣阳市| 静宁县| 黎城县| 临安市| 崇阳县|