A seguinte expressão regular deve funcionar:
-regex ".*/$x[^0-9].*"
Ele contém o número logo após a barra seguido por um não-número.
Eu tenho o arquivo csv (products.csv) com números de produtos
$ cat products.csv | head -3
2.20
2.21
2.22
em outro diretório, tenho milhares de imagens de produtos em subdiretórios.
Eu preciso localizar as imagens do produto com base no número do produto do arquivo products.csv.
Eu escrevi um script simples para localizá-los:
#!/bin/sh
PRODUCTS_FOLDER="products";
PRODUCTS="products.csv";
for x in 'cat $PRODUCTS';
do
FILE='find $PRODUCTS_FOLDER -follow -iname "$x*"';
if [ -n "$FILE" ]; then
echo "Product $x found:";
echo "--> $FILE <--";
else
echo "Product $x not found";
fi
echo "-----------------------------------";
done
mas não está fazendo exatamente o que eu preciso. Nos resultados, posso encontrar o seguinte:
-----------------------------------
Product 14.144 found:
--> products/Buchzeichen/14.144_Interlaken_sortiert.jpg
products/Motive/14.1448.jpg
products/Motive/14.1445.jpg
products/Motive/14.1449.jpg
products/Motive/14.1446.jpg <--
-----------------------------------
O resultado correto deve conter apenas fotos com esse número (14.444) sem 14.1448, 14.1445, 14.1449, 14.1446
Que exp regulares devo usar para obter o resultado esperado? Ou talvez haja outra maneira de resolver isso?
Suas idéias ou sugestões são muito apreciadas