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.txti WW_C.txttak, ż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 mvpolecenie 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 *_*.txttej*.*.txtczęści zachowuje się jak wecho *.*.txt;*_*.txtczęść zachowuje się jak wecho *_*.txt. Nie ma logicznego połączenia między pierwszą gwiazdką a trzecią, ani między drugą a czwartą.