Mam kilka plików, które otrzymuję o nazwach takich jak (wielu z nich robi to ręcznie codziennie):
AA.B.txt
WW.C.txt
i chcę, aby ich nazwy AA_B.txt
i WW_C.txt
tak, że istniejący kod SQL nadal działa zgodnie z oczekiwaniami. W tej chwili pliki te są ignorowane ze względu na format nazwa_pliku.letter.txt.
ls
działa i pokazuje mi te pliki:
$ ls -a *.*.txt
AA.B.txt*
ABR.A.txt*
ABR.B.txt*
ABR.C.txt*
ACT.A.txt*
Jednak podobne mv
polecenie kończy się niepowodzeniem:
$ mv *.*.txt *_*.txt
usage: mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory
Jak dopasować wzór, który mam, do tego, czego chcę?
mv *.*.txt *_*.txt
tej*.*.txt
części zachowuje się jak wecho *.*.txt
;*_*.txt
część zachowuje się jak wecho *_*.txt
. Nie ma logicznego połączenia między pierwszą gwiazdką a trzecią, ani między drugą a czwartą.