./test/regex.py
./MongoDB/cnt_fail.py
我們只需要文件名的話可以使用linux提供的命令basename
利用basename將find的所有搜索結(jié)果進(jìn)行處理我們需要使用find的參數(shù)-exec
最終的命令為:
find . -name '*.py' -exec basename {} \\\\;
結(jié)果:
test.py
regex.py
cnt_fail.py
其中{} 用于與-exec選項(xiàng)結(jié)合使用來匹配所有結(jié)果,然后支取其文件名。
目標(biāo)二:獲得所有py文件路徑,去重復(fù),刪除開頭的“./”字符
linux也有獲取文件路徑的命令dirname
略微修改之前的命令能夠顯示所有文件路徑
find . -name '*.py' -exec dirname {} \\\\;
搜索結(jié)果:
./test
./test
./MongoDB
可以看到路徑存在重復(fù),linux去除重可以利用sort再添加-u參數(shù),-u參數(shù)用于去除排序結(jié)果中的重復(fù)項(xiàng)
我們需要把上一個(gè)命令的輸出傳遞給sort作為輸入,很自然想到了管道
管道命令操作符是:|,它僅能處理經(jīng)由前面一個(gè)指令傳出的正確輸出信息,也就是 standard output 的信息,對(duì)于 stdandard
error 信息沒有直接處理能力。然后,傳遞給下一個(gè)命令,作為標(biāo)準(zhǔn)的輸入 standard input.
添加sort之后的命令為
find . -name '*.py' -exec dirname {} \\\\; | sort -u
運(yùn)行結(jié)果結(jié)果為:
./MongoDB
./test
最后我們?cè)倮胏ut刪除每一個(gè)路勁之前的./字符,參數(shù)-c3-意思提取字符串(起始位置為1)的第3個(gè)字符到最后的子串
最終命令為:
find . -name '*.py' -exec dirname {} \\\\; | sort -u | cut -c3-
運(yùn)行結(jié)果:
MongoDB
test
以上就是關(guān)于linux命令如何提取文件夾內(nèi)特定文件路徑的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問題,請(qǐng)?jiān)L問西部數(shù)碼官網(wǎng):m.ps-sw.cn