gpt4 book ai didi

linux - bash 脚本列出目录中的文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:13 24 4
gpt4 key购买 nike

我正在编写一个脚本,它接受一个目录参数。
我希望能够使用该目录中具有特定扩展名的所有文件构建列表/数组并剪切其扩展名。例如,如果我有包含以下内容的目录:

  • aaa.xx
  • bbb.yy
  • ccc.xx

我正在搜索 *.xx 。
我的列表/数组是:aaa ccc。
我正在尝试使用此线程 example 中的代码接受的答案。

set tests_list=[]

for f in $1/*.bpt
do
echo $f
if [[ ! -f "$f" ]]
then
continue
fi
set tmp=echo $f | cut -d"." -f1
#echo $tmp
tests_list+=$tmp
done

echo ${tests_list[@]}

如果我运行这个脚本,我发现循环只执行一次,$f是tests_list=[]/*.bpt,这很奇怪,因为$f应该是该目录中的文件名,并回显空字符串。
我验证了我位于正确的目录中,并且参数目录中包含带有 .bpt 扩展名的文件。

最佳答案

这应该适合你:

for file in *.xx ; do echo "${file%.*}" ; done

要将其扩展为将参数作为目录的脚本:

#!/bin/bash

dir="$1"
ext='xx'

for file in "$dir"/*."$ext"
do
echo "${file%.*}"
done

编辑:将 ls 切换为 for - 感谢 @tripleee 的更正。

关于linux - bash 脚本列出目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27920757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com