From 00bf170e31343ccc4fac7a63f6a3acf5e76c3616 Mon Sep 17 00:00:00 2001 From: Larry Wall Date: Wed, 8 Aug 1990 17:07:07 +0000 Subject: perl 3.0 patch #25 patch #19, continued See patch #19. --- eg/relink | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ eg/rename | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 134 insertions(+), 14 deletions(-) (limited to 'eg') diff --git a/eg/relink b/eg/relink index 2d8e5f6540..d31f96eacf 100644 --- a/eg/relink +++ b/eg/relink @@ -1,14 +1,18 @@ #!/usr/bin/perl +'di'; +'ig00'; +# +# $Header: relink,v 3.0.1.2 90/08/09 03:17:44 lwall Locked $ +# +# $Log: relink,v $ +# Revision 3.0.1.2 90/08/09 03:17:44 lwall +# patch19: added man page for relink and rename +# ($op = shift) || die "Usage: relink perlexpr [filenames]\n"; if (!@ARGV) { - if (-t) { - @ARGV = <*>; - } - else { - @ARGV = ; - chop(@ARGV); - } + @ARGV = ; + chop(@ARGV); } for (@ARGV) { next unless -l; # symbolic link? @@ -22,3 +26,60 @@ for (@ARGV) { symlink($_, $name); } } +############################################################################## + + # These next few lines are legal in both Perl and nroff. + +.00; # finish .ig + +'di \" finish diversion--previous line must be blank +.nr nl 0-1 \" fake up transition to first page again +.nr % 0 \" start at page 1 +';<<'.ex'; #__END__ ############# From here on it's a standard manual page ############ +.TH RELINK 1 "July 30, 1990" +.AT 3 +.SH LINK +relink \- relinks multiple symbolic links +.SH SYNOPSIS +.B relink perlexpr [symlinknames] +.SH DESCRIPTION +.I Relink +relinks the symbolic links given according to the rule specified as the +first argument. +The argument is a Perl expression which is expected to modify the $_ +string in Perl for at least some of the names specified. +For each symbolic link named on the command line, the Perl expression +will be executed on the contents of the symbolic link with that name. +If a given symbolic link's contents is not modified by the expression, +it will not be changed. +If a name given on the command line is not a symbolic link, it will be ignored. +If no names are given on the command line, names will be read +via standard input. +.PP +For example, to relink all symbolic links in the current directory +pointing to somewhere in X11R3 so that they point to X11R4, you might say +.nf + + relink 's/X11R3/X11R4/' * + +.fi +To change all occurences of links in the system from /usr/spool to /var/spool, +you'd say +.nf + + find / -type l -print | relink 's#/usr/spool#/var/spool#' + +.fi +.SH ENVIRONMENT +No environment variables are used. +.SH FILES +.SH AUTHOR +Larry Wall +.SH "SEE ALSO" +ln(1) +.br +perl(1) +.SH DIAGNOSTICS +If you give an invalid Perl expression you'll get a syntax error. +.SH BUGS +.ex diff --git a/eg/rename b/eg/rename index 1bb19d7230..f63a0ebe8b 100644 --- a/eg/rename +++ b/eg/rename @@ -1,14 +1,18 @@ #!/usr/bin/perl +'di'; +'ig00'; +# +# $Header: rename,v 3.0.1.2 90/08/09 03:17:57 lwall Locked $ +# +# $Log: rename,v $ +# Revision 3.0.1.2 90/08/09 03:17:57 lwall +# patch19: added man page for relink and rename +# ($op = shift) || die "Usage: rename perlexpr [filenames]\n"; if (!@ARGV) { - if (-t) { - @ARGV = <*>; - } - else { - @ARGV = ; - chop(@ARGV); - } + @ARGV = ; + chop(@ARGV); } for (@ARGV) { $was = $_; @@ -16,3 +20,58 @@ for (@ARGV) { die $@ if $@; rename($was,$_) unless $was eq $_; } +############################################################################## + + # These next few lines are legal in both Perl and nroff. + +.00; # finish .ig + +'di \" finish diversion--previous line must be blank +.nr nl 0-1 \" fake up transition to first page again +.nr % 0 \" start at page 1 +';<<'.ex'; #__END__ ############# From here on it's a standard manual page ############ +.TH RENAME 1 "July 30, 1990" +.AT 3 +.SH NAME +rename \- renames multiple files +.SH SYNOPSIS +.B rename perlexpr [files] +.SH DESCRIPTION +.I Rename +renames the filenames supplied according to the rule specified as the +first argument. +The argument is a Perl expression which is expected to modify the $_ +string in Perl for at least some of the filenames specified. +If a given filename is not modified by the expression, it will not be +renamed. +If no filenames are given on the command line, filenames will be read +via standard input. +.PP +For example, to rename all files matching *.bak to strip the extension, +you might say +.nf + + rename 's/\e.bak$//' *.bak + +.fi +To translate uppercase names to lower, you'd use +.nf + + rename 'y/A-Z/a-z/' * + +.fi +.SH ENVIRONMENT +No environment variables are used. +.SH FILES +.SH AUTHOR +Larry Wall +.SH "SEE ALSO" +mv(1) +.br +perl(1) +.SH DIAGNOSTICS +If you give an invalid Perl expression you'll get a syntax error. +.SH BUGS +.I Rename +does not check for the existence of target filenames, so use with care. +.ex -- cgit v1.2.1