./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命令如何提取文件夾內特定文件路徑的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

更多關于云服務器域名注冊,虛擬主機的問題,請訪問三五互聯官網:www.shinetop.cn

贊(0)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » linux命令如何提取文件夾內特定文件路徑

登錄

找回密碼

注冊