Nerdling Nerdling -4 years ago 83
Bash Question

Batch renaming files with Bash

How can Bash rename a series of packages to remove their version numbers? I've been toying around with both

expr
and
%%
, to no avail.

Examples:

Xft2-2.1.13.pkg
becomes
Xft2.pkg


jasper-1.900.1.pkg
becomes
jasper.pkg


xorg-libXrandr-1.2.3.pkg
becomes
xorg-libXrandr.pkg

Answer Source

You could use bash's parameter expansion feature

for i in *.pkg ; do mv "$i" "${i/-[0-9.]*.pkg/.pkg}" ; done

Quotes are needed for filenames with spaces.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download