Regex для извлечения только части основного имени файла - PullRequest
0 голосов
/ 09 апреля 2020

Я довольно новичок в регулярных выражениях, и я пытаюсь получить часть базового имени файла для повторного использования позже в переменной. Я запускаю тесты с помощью 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

1 Ответ

1 голос
/ 10 апреля 2020
#!/bin/bash

search_dir=.
filter="_.*$";

for entry in "$search_dir"/*
do
    echo $(basename $entry) | sed -e "s/$filter//"
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...