gpt4 book ai didi

linux - Shell 脚本,删除文件而不将整个名称作为参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:51 25 4
gpt4 key购买 nike

假设我们有一个名为 randomfile_a434534_Frank.csv 的文件

我希望用户输入第一部分“randomfile*”作为参数而不是全部。我将如何在不指定整个文件名的情况下访问/说删除这个特定文件

最佳答案

以下重新提示,直到给出仅匹配单个文件的前缀。根据口味进行修改——如果您只想测试一次,请删除循环,如果您想从命令行获取前缀,请引用 $1,或者遍历 "${files[ @]}" 在多个文件匹配的情况下,而不是放弃/重新提示,如果这是你的意图。

#!/bin/bash
# note that the above is necessary to enable features such as arrays; shells started
# with #!/bin/sh may not provide them.

while :; do
echo "Please enter a filename prefix:" >&2
IFS= read -r filename

files=( "$filename"* )
if (( ${#files[@]} == 1 )) && [[ -e "$files" ]]; then
echo "OK; using $files" >&2
break
elif [[ ! -e "$files" ]] || (( ${#files[@]} == 0 )); then
echo "Error: No matching files found" >&2
else
echo "Error: More than one file matches that prefix" >&2
fi
done

echo "Operating on file named: $files"

关于linux - Shell 脚本,删除文件而不将整个名称作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27911168/

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