如何獲取滿足以下條件的當前目錄中的文件列表?Bash命令獲取目錄中的文件列表
- 隱藏文件(從「」)不應該包括
- 文件夾名稱不應該包括
- 的文件名應包括其擴展
- 文件名用空格不應該被劃分爲多個列表中的項目
(我打算遍歷在bash腳本一個福爾循環的結果。)
如何獲取滿足以下條件的當前目錄中的文件列表?Bash命令獲取目錄中的文件列表
(我打算遍歷在bash腳本一個福爾循環的結果。)
如何只使用*,然後跳過該目錄爲在循環的第一步?
for F in * ; do
if test -d "$F" ; then continue ; fi
echo "$F"
done
! -name '.*'
- -
應罰款爲您的需求
maxdepth 1
'*'>搜索文件不匹配名稱模式
type f
- >只搜索文件,不迪爾斯
你可以試試這個:
find $folderPath -type f -printf "%f\n" | grep -v '^[.].*'
您只需更改$ folderPath。
說明
找到$ FOLDERPATH型的F -printf 「%F \ N」
使用find命令,您可以用幾個選項搜索到該文件夾。
'型的F' 只搜索文件,如果你想通過文件夾過濾器,你只需要改變 'd'
「-print「%F \ n個 'F' 「'格式化命令的輸出。 '%f'提取文件名,'\ n'添加一個返回。
'|'是一個管道。使用管道,您可以使用命令的輸出將其用作其他命令中的輸入變量。
的grep -v '^ [。]。*'
要關閉說明,如果您使用另一個'|' (管道),你可以處理命令的每個結果,就像另一個輸入的輸入一樣。這具有更好的性能,因爲輸出在Stream中,並且需要更少的內存來處理結果。
你會在bash腳本的for循環中使用什麼?在那裏使用find還是有一種更好的方法是合理的? – ndrizza
只使用bash下
files=()
for f in *; do [[ -d $f ]] || files+=("$f"); done
printf "%s\n" "${files[@]}"
對100K代表表示高度的祝賀! – fedorqui
在完成之前,您需要一個語句終結符(分號或換行符)。 – tripleee
@tripleee那裏有一個換行符。 – twm
未格式化的帖子;但現在有了。 – tripleee