Search This Blog

Labels

adobe (1) android (3) apache (3) aviation (1) bash (2) chrome (2) composer (1) cookery (3) dev (2) dodanperks (1) extensions (1) facebook (2) firefox (1) git (2) grafana (1) guzzle (1) headaches (11) htaccess (1) html5 (2) jquery (2) lamp (1) life hacks (10) linux (28) mysqli (2) native (1) opera (2) php (10) railfanning (1) reactjs (3) reactnative (1) servers (11) sinhala (1) smartphones (2) snap (1) sound (1) tech (22) troubleshoots (4) ubuntu (29) unicode (4) virtualbox (1) wamp (2) web (11) windows (4) wordpress (3) youtube (2) කෑම (3)

Saturday, 26 July 2014

Tech: Renaming multiple files at once on linux platforms

If you wanna rename multiple files at once, removing or modifying same phrase from multiple file names on linux, here is the solution.
For example, imagine you want to remove singer's name in file name (ie. Nirosha_Virajini_) from all the mp3 files listed.
Execute this command in terminal,
for file in Nirosha_Virajini_*.mp3; do
    mv "$file" "${file//Nirosha_Virajini/}"
done

And another solution,
rename 's/Nirosha_Virajini_//' *.mp3

Generally

mv

General appearence of above commands, (eg: renaming ABCdefgh.xxx like file names to KLMdefgh.xxx like names)
for file in ABC*.xxx; do
    mv "$file" "${file//ABC/KLM}"
done

Including subdirectories
find . -type f -name "ABC*" -print0 | while read -d '' file; do
    mv "$file" "${file//ABC/KLM}"
done

rename

By using command
rename
rename 's/ABC/KLM/' *.xxx

Note: command
rename
uses perl.
For Windows users, check this solution

No comments:

Post a Comment