正则表达式仅提取基本文件名的一部分
Regex to extract just a portion of the base filename
我是正则表达式的新手,我正在尝试获取基本文件名的一部分以便稍后在变量中重用。我正在 运行 使用 echo 进行测试以查看输出,但我无法让它按我期望的方式工作。这是我想出的一段代码。
#!/bin/bash
search_dir=/var/FTP/DB
filter="[^_0-9.ra]"
for entry in "$search_dir"/*
do
echo $(basename $entry) #| grep -oP $filter
done
它成功地获取了我想要的基本文件名的一部分,但它在一个新行中拆分了每个字母。有人可以帮我解决这个问题吗?
EDIT:
File in /var/FTP/DB:
TEXT_04-20-20-15-55.zip
LEARN_03-22-19-00-01.rar
Desired output:
TEXT
LEARN
#!/bin/bash
search_dir=.
filter="_.*$";
for entry in "$search_dir"/*
do
echo $(basename $entry) | sed -e "s/$filter//"
done
我是正则表达式的新手,我正在尝试获取基本文件名的一部分以便稍后在变量中重用。我正在 运行 使用 echo 进行测试以查看输出,但我无法让它按我期望的方式工作。这是我想出的一段代码。
#!/bin/bash
search_dir=/var/FTP/DB
filter="[^_0-9.ra]"
for entry in "$search_dir"/*
do
echo $(basename $entry) #| grep -oP $filter
done
它成功地获取了我想要的基本文件名的一部分,但它在一个新行中拆分了每个字母。有人可以帮我解决这个问题吗?
EDIT:
File in /var/FTP/DB:
TEXT_04-20-20-15-55.zip
LEARN_03-22-19-00-01.rar
Desired output:
TEXT
LEARN
#!/bin/bash
search_dir=.
filter="_.*$";
for entry in "$search_dir"/*
do
echo $(basename $entry) | sed -e "s/$filter//"
done