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
cmp(1) General Commands Manual cmp(1)
NAME
cmp - Compares two files
SYNOPSIS
cmp [-l | -s] file1 file2
STANDARDS
Interfaces documented on this reference page conform to industry standards as follows:
cmp:XCU5.0
Refer to the standards(5) reference page for more information about industry standards and associated tags.
OPTIONS
Prints the byte number (decimal) and the differing bytes (octal) for each difference. Does not print data for differing files; returns
only an exit value.
OPERANDS
The path name of a file to be compared. The path name of a file to be compared.
DESCRIPTION
The cmp command compares two files.
If file1 or file2 is - (dash), standard input is used for that file. It is an error to specify - for both files.
By default, the cmp command prints no information if the files are the same. If the files differ, cmp prints the byte and line number
where the difference occurred.
The cmp command also specifies whether one file is an initial subsequence of the other (that is, if the cmp command reads an End-of-File
character in one file before finding any differences). Usually, you use the cmp command to compare nontext files and the diff command to
compare text files.
Note that bytes and lines reported by cmp are numbered from 1.
EXIT STATUS
The following exit values are returned: The files are identical. The files differ. This includes files of different lengths that are
identical in the first part of both files. An error occurred.
EXAMPLES
To determine whether two files are identical, enter: cmp prog.o.bak prog.o
The preceding command compares the files prog.o.bak and prog.o. If the files are identical, a message is not displayed. If the
files differ, the location of the first difference is displayed. For instance: prog.o.bak prog.o differ: byte 5, line 1
If the message cmp: EOF on prog.o.bak is displayed, then the first part of prog.o is identical to prog.o.bak, but there is addi-
tional data in prog.o.
If the message cmp: EOF on prog.o is displayed, it is prog.o.bak that is the same as prog.o but also contains addition data. To
display each pair of bytes that differ, enter: cmp -l prog.o.bak prog.o
This compares the files and then displays the byte number (in decimal) and the differing bytes (in octal) for each difference. For
example, if the fifth byte is octal 101 in prog.o.bak and 141 in prog.o, then the cmp command displays: 5 101 141
.
.
.
ENVIRONMENT VARIABLES
The following environment variables affect the execution of cmp: Provides a default value for the internationalization variables that are
unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari-
ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value,
overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes
of text data as characters (for example, single-byte as opposed to multibyte characters in arguments). Determines the locale for the for-
mat and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of
LC_MESSAGES.
SEE ALSO
Commands: comm(1), bdiff(1), diff(1), diff3(1), sdiff(1)
Standards: standards(5)
cmp(1)