01-30-2003
When you -exec the perl script, it's done on the first file it finds, vaditerm.dt when it finds it, not when it has read the entire directory. Then when it continues, the next file it finds is vaditerm.dt.bak, which your -exec then operates on. Next is vaditerm.dt.bak.bak ...
One solution is to pass off the results of find to xargs; xargs then runs your perl program. If you want it to do one file at a time, there's an option to xargs to tell it so.
find . -type f | xargs perl -i.bak ...
Another solution is to tell find to ignore *.bak:
find . -type f \! -name '*.bak' -exec perl ...
The xargs version (if you process more than one file at a time) uses fewer process slots and will run faster, which may be important if you have a lot of files and/or your files are long. The xargs version will overwrite existing .bak files if they are physically in the directory after the primary files. Combining the two solutions, i.e.,
find . -type f \! -name '*.bak' | xargs perl ...
will certainly overwrite existing .bak files.
9 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
hi there,
i am porting kernel 2.2 driver program to kernel 2.6. for some extent i am successfull but some times the system gets hanged. what might be the problem? i am not able to get any help from log messages as nothing is being printed at that moment. hey does this kernel preemptiveness and... (2 Replies)
Discussion started by: sriram.ec
2 Replies
2. UNIX for Dummies Questions & Answers
Hi,
I have noticed that rm -if will perform completely different to rm -fi. Whats the pattern of how I put my options to the script in relation to how it will act.
i.e
rm -fi treat the remove as interative but
rm -if treats it as forced
Thansk, Chris. (1 Reply)
Discussion started by: Chiefos
1 Replies
3. Virtualization and Cloud Computing
2008-10-31T22:46:14+01:00
http://geekandpoke.typepad.com/.a/6a00d8341d3df553ef010535ce543e970c-800wi
Nicholas Carr (and here) has some problems with Tim O'Reilly's theory about the cloud and the network effect.
http://feeds.feedburner.com/~f/GeekAndPoke?i=OFn0M... (0 Replies)
Discussion started by: Linux Bot
0 Replies
4. Shell Programming and Scripting
Hello,
In google: if we type the text like :-
It gives us a question saying :-
I want to know how to write a shell script to give this Dictionary effect. example:If we give "lst" then it corrects us saying "list".
Can you please help me with a sample code! friends..... (3 Replies)
Discussion started by: nsharath
3 Replies
5. UNIX for Dummies Questions & Answers
RHEL AS 3 running on x86 hardware. That have been patched for DST but did not change a few weeks back when time changed over.
Explanation of the issue from another party.
The servers in questions maintain their TOY clock local time instead of
UTC. As by defined functionality It prevents NTP... (1 Reply)
Discussion started by: Steelysteel
1 Replies
6. UNIX for Dummies Questions & Answers
A basic cron question and I hope I explain it enough.
If a person creates a file to use with cron and issues the followin command:
crontab
I understand this will set the cron entries to whatever is in . However, if we now edit the crontab with:
crontab -e
and save, how does cron... (3 Replies)
Discussion started by: niswonp
3 Replies
7. Shell Programming and Scripting
It doesn't have effect in script but it works on the terminal
root@server:/opt/kvm/usecases/logs# alias echo='echo -e'
root@server:/opt/kvm/usecases/logs# echo "xxxx\n"
xxxx
root@server:/opt/kvm/usecases/logs# cat xx.sh
#!/bin/bash
alias echo='echo -n'
echo "sssf \n"
... (3 Replies)
Discussion started by: yanglei_fage
3 Replies
8. Shell Programming and Scripting
jotne posted an interesting thread an hour or two ago, and ended up with the following:
awk '{$1=$1} /^+$/' file
I had a question about the effect of $1=$1 assignment, and thought it better to start a new thread, because it's really a different topic.
$ cat test.sh
set -v
echo " abcd" | awk... (3 Replies)
Discussion started by: hanson44
3 Replies
9. UNIX for Dummies Questions & Answers
This is a DEMO only...
Someone recently asked about creating a box to make something look nicer on screen.
I suggested that with careful colouring a 3D effect could be created...
Linux version; this also works on a Macbook Pro but is not as easy to see as the other code below:-
... (0 Replies)
Discussion started by: wisecracker
0 Replies
LEARN ABOUT DEBIAN
dpkg-name
dpkg-name(1) dpkg utilities dpkg-name(1)
NAME
dpkg-name - rename Debian packages to full package names
SYNOPSIS
dpkg-name [option...] [--] file...
DESCRIPTION
This manual page documents the dpkg-name program which provides an easy way to rename Debian packages into their full package names. A full
package name consists of package_version_architecture.package-type as specified in the control file of the package. The version part of the
filename consists of the upstream version information optionally followed by a hyphen and the revision information. The package-type part
comes from that field if present or fallbacks to deb.
OPTIONS
-a, --no-architecture
The destination filename will not have the architecture information.
-k, --symlink
Create a symlink, instead of moving.
-o, --overwrite
Existing files will be overwritten if they have the same name as the destination filename.
-s, --subdir [dir]
Files will be moved into a subdirectory. If the directory given as argument exists the files will be moved into that directory oth-
erwise the name of the target directory is extracted from the section field in the control part of the package. The target directory
will be `unstable/binary-architecture/section'. If the section is not found in the control, then `no-section' is assumed, and in
this case, as well as for sections `non-free' and `contrib' the target directory is `section/binary-architecture'. The section field
isn't required so a lot of packages will find their way to the `no-section' area. Use this option with care, it's messy.
-c, --create-dir
This option can used together with the -s option. If a target directory isn't found it will be created automatically. Use this
option with care.
-?, --help
Show the usage message and exit.
-v, --version
Show the version and exit.
EXAMPLES
dpkg-name bar-foo.deb
The file `bar-foo.deb' will be renamed to bar-foo_1.0-2_i386.deb or something similar (depending on whatever information is in the
control part of `bar-foo.deb').
find /root/debian/ -name '*.deb' | xargs -n 1 dpkg-name -a
All files with the extension `deb' in the directory /root/debian and its subdirectory's will be renamed by dpkg-name if required
into names with no architecture information.
find -name '*.deb' | xargs -n 1 dpkg-name -a -o -s -c
Don't do this. Your archive will be messed up completely because a lot of packages don't come with section information. Don't do
this.
dpkg-deb --build debian-tmp && dpkg-name -o -s .. debian-tmp.deb
This can be used when building new packages.
BUGS
Some packages don't follow the name structure package_version_architecture.deb. Packages renamed by dpkg-name will follow this structure.
Generally this will have no impact on how packages are installed by dselect(1)/dpkg(1), but other installation tools might depend on this
naming structure.
SEE ALSO
deb(5), deb-control(5), dpkg(1), dpkg-deb(1), find(1), xargs(1).
Debian Project 2012-04-15 dpkg-name(1)