@H_301_1@我需要收集一个文件列表并将其放在一个文本文件中.但是,文件不应包含其扩展名.
ls -1 /a/dir/*/dir/* > textfile
所有选定文件的扩展名为.[a-z] {3}
解决方法
我总是希望包含一个仅限bash的解决方案:
for file in /a/dir/*/dir/*; do echo "${file%.*}" >> ~/file_list done
并使用可选的if语句将文件限制为您请求的扩展名:
shopt -s extglob for file in /a/dir/*/dir/*; do if [[ "$file" =~ \.[a-zA-Z]{3}$]]; then echo "${file%.*}" >> ~/file_list fi done
在this similar serverfault问题中我解释了“${file%.*}”参数扩展.