From ba5414545ed0cbce19bd305c5c21c4d159ef852f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= Date: Sat, 10 Jul 2021 18:00:13 +0200 Subject: Add re.1, name.1 --- Makefile | 4 ++++ name.1 | 1 + re.1 | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 120000 name.1 create mode 100644 re.1 diff --git a/Makefile b/Makefile index 74da858..64c8b21 100644 --- a/Makefile +++ b/Makefile @@ -1 +1,5 @@ all: re name + +install: + install re name /usr/local/bin + install -m 644 re.1 name.1 /usr/local/man/man1 diff --git a/name.1 b/name.1 new file mode 120000 index 0000000..159d8f0 --- /dev/null +++ b/name.1 @@ -0,0 +1 @@ +re.1 \ No newline at end of file diff --git a/re.1 b/re.1 new file mode 100644 index 0000000..1bb1ae0 --- /dev/null +++ b/re.1 @@ -0,0 +1,82 @@ +.Dd $Mdocdate$ +.Dt RE 1 +.Os +.Sh NAME +.Nm re +.Nd bulk rename with UNIX philosophy +.Sh SYNOPSIS +.Nm re +.Ar file +.Op Ar ... +.Nm name +.Op Fl x +. +.Sh DESCRIPTION +.Pp +.Nm re +and +.Nm name +are used in conjunction in order to bulk rename files. +.Pp +.Nm re +writes a number of file names, separated by newlines, +to a temporary file and on standard out. +.Pp +.Nm name +reads the original file names from the temporary file +and the new file names from standard in. +It prints the corresponding +.Xr mv 1 +commands on standard out. +If given the +.Fl x +flag, it executes them as well. +.Pp +The idiomatic way to use +.Nm re +and +.Nm name +is to connect them with a pipe, +with arbitrary programs in-between. +. +.Sh EXAMPLES +.Pp +The following invocation changes the file extension of all mp3 files: +.Bd -literal -offset indent +$ re *.mp3 | sed 's/mp3$/m4a/' | name -x +.Ed +.Pp +The following invocation uses +.Xr ep 1 +to manually edit the file names in +.Xr vi 1 : +.Bd -literal -offset indent +$ re * | ep | name +.Ed +.Pp +.Xr ep 1 +is available for download at +.Lk http://git.ankarstrom.se/xutil/ . +. +.Sh AUTHORS +.Pp +.Nm re +and +.Nm name +are written by John Ankarström +.Aq Mt "john (at) ankarstrom.se" . +. +.Sh BUGS +.Pp +.Nm re +and +.Nm name +do not support file names containing newlines +and will exit if provided with such file names. +.Pp +The temporary file is placed at +.Pa /var/tmp/re.$PPID , +where $PPID is the process id of the parent shell. +This means that one cannot simultaneously perform mulitple bulk renames +from the same shell process. +Note that sub-shells retain the process id of their parent. -- cgit v1.2.3