如何在unix脚本中提取文件名的一部分并检查它是否存在

how to extract a part of file name in unix scripting and check if it exists

我需要编写一个脚本,我必须从文件 abc_def_xxx_yyy_20210515.txt 中提取部分名称并检查 abc_def_xxx_yyy.txt 是否存在。如果没有,则创建文件。

FILE="abc_def_xxx_yyy_20210515.txt"
DLS=echo $FILE | awk -F_ '{print ,,,".txt"}'
DLL=\home\xxx$DLS
if [-f "$DLL"]; then
echo "$DLL exists"
else 
touch "$DLL"
fi

我收到错误提示 "abc_def_xxx_yyy_20210515.txt" not found

但如果我 运行 和

FILE="abc_def_xxx_yyy_20210515.txt"
echo $FILE | awk -F_ '{print ,,,".txt"}' 

我得到 abc_def_xxx_yyy.txt

有人可以帮我解决这个问题吗?

尝试:

FILE="abc_def_xxx_yyy_20210515.txt"
DLS="${FILE%_*}.txt"
DLL="$HOME/$DLS"
if [ -f "$DLL"]; then
  echo "$DLL exists"
else 
  touch "$DLL"
fi