zamień / zmień nazwę katalogu za pomocą wyrażenia regularnego

0

mam wiele folderów z tym wzorem „720p.MP4-ABC [abcde]” próbuje zastąpić lub zmienić nazwę „720p.MP4-CAB [aedcb]” na „.

Steven Adward
źródło
Co chcesz zobaczyć w wyniku tego konkretnego przypadku?
theoden
powiedzmy „example.720p.MP4-ABC [abcde]” to nazwa pliku, której nazwę chcesz zmienić na „przykład”.
Steven Adward
Jaki system operacyjny / powłoka?
David Richerby
Próbuję to zrobić na Linuksie
Steven Adward

Odpowiedzi:

0
echo mv \""NAME"\" \""$(sed -Ee 'regex' <<< "NAME")"\"

Nazwa zostanie zmieniona przy użyciu wyrażenia regularnego.

W twoim przypadku możesz po prostu:

mv "example.720p.MP4-ABC[abcde]" "`sed 's/example\..*//' <<< "example.720p.MP4-ABC[abcde]"`"
theoden
źródło
ale „ABC [abcde]” może zmienić się w coś innego
Steven Adward
@ StevenAdward, staram się zrozumieć, czego potrzebujesz, ale czasami jest to mgła tajemnicy. Czy możesz wyrazić siebie tak jasno, jak to tylko możliwe, z bardziej konkretnymi przykładami? zobacz moją edycję.
theoden
tutaj dwa przykłady Men.In.Black.3.2012.720p.MP4-KTR [rarbg] i Maleficent.2014.720p.MP4-KTR [rarbg], więc chcę zmienić nazwę folderu na Men.In.Black.3.2012 i Maleficent.2014
Steven Adward
for i in "Men.In.Black.3.2012.720p.MP4-KTR[rarbg]" "Maleficent.2014.720p.MP4-KTR[rarbg]"; do echo mv "'$i'" "'$(echo "$i" | sed -E 's/\.[0-9]{3,4}p.*//')"; done Myślę, że to zadziała dla 720p i 1080p.
theoden
root @ Ubuntu-1404-trusty-64-minimum ~ / 8.20 / 3 # bash 1.sh mv 'Men.In.Black.3.2012.720p.MP4-KTR [rarbg]' 'Men.In.Black.3.2012 mv' Maleficent.2014.720p.MP4-KTR [rarbg] '' Maleficent.2014 i czy można użyć symbolu wieloznacznego do znalezienia nazwy folderu
Steven Adward