08-30-2001
My sloppy mess...
OK, I started thinking about it because it was bugging me, and tossed this together. Keep in mind that it is not very accurate, and gets less so the larger the file is. It rounds down, since I basically just chop all decimal remainders off, even if it's .99. And right now, it'll copy the bottom % of the file. If you want to copy the top of the file, change the _command variable from "tail" to "head". I don't know how portable this is, but it will give you an idea -
Now, without further ado - here goes:
#!/bin/sh
# copy percentage of file to another
# not very accurate, especially with files with a large
# number of lines...
_command="tail"
_from=$1
_per=$2
_to=$3
to_use () {
echo
echo "Usage: "
echo "`basename $0` file1 65 file2 "
echo "will copy (about) 65% of file1 to file2 "
echo
}
if [ "$#" != "3" ] ; then
to_use
exit 2
fi
if [ "$_per" -gt 100 -o "$_per" -lt 10 ] ; then
echo "Percentage must be between 10 and 100 "
echo
exit 2
fi
# special thanks to Faux_pseudo for helping here:
_fsize=`wc -l $_from | awk '{print $1}'`
_persize=`echo "$_fsize * 0.${_per}" | bc -q`
_fper=`echo $_persize | cut -d. -f1`
# Wheeee!
$_command -${_fper} ${_from} > ${_to}
Feel free to post any corrections or ideas. I'm always up to improve my scripting. It's pretty obvious to us all now that I'm not afraid to waste some time and resources!
Ooh.. Almost forgot to mention, it won't calculate anything less than 10% - I didn't want to throw the possibility of screwing something up in there, and I'm too tired to test it out any more. If it will work that way, you can change the "$_per -lt 10 to "_$per -lt 1.
--
LF
Last edited by LivinFree; 08-30-2001 at 07:34 AM..
9 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi all,
I wanted to know how i can copy a file to a directory and then verify if that file is completely copied or not?
Now the issues here is that the dir and the source file are to be sent as arguments to a function( this function should actually copy the files to a dir, then check if its... (0 Replies)
Discussion started by: wrapster
0 Replies
2. Shell Programming and Scripting
Hi all
I need to copy the entire contents of one file into an existing file at a specific location. I know the exact line number where I need to put it. It appears I would use either sed or awk to do this, but I have been unsuccessful so far:
File A
line 1
line 2
line 3
line 4
... (6 Replies)
Discussion started by: gshepherd7
6 Replies
3. UNIX for Dummies Questions & Answers
Hi,
I am a newbie to AIX, so please bear with me. I have mounted a dvd drive on AIX. I am trying to copy the file that is on the dvd drive on to the local machine. However, I get an error:
cp: c1m_0001.gz: A system call received a parameter that is not valid.
Can some one point me to the... (1 Reply)
Discussion started by: anurag1510
1 Replies
4. UNIX for Dummies Questions & Answers
I so desperately need a script to copy a windows csv file to my unix server and i know these should be at dummies but i have no bits. it is life & no job situation help please. thanks (1 Reply)
Discussion started by: zhegal
1 Replies
5. Red Hat
Hi guys,
I have just been bothered by a fairly small issue for some time now. I am trying to search (using find -name) for some .jpg files recursively. This is a Redhat environment with bash.
I get this job done though I need to copy ALL of them and put them in a separate folder BUT I also... (1 Reply)
Discussion started by: rockf1bull
1 Replies
6. Programming
I need to
"Ensure that when you download libchat.a from the VLE you have copied it to the same folder on ius as your source files. You then refer to the library (and the libraries it needs) with:
gcc -o outputfile sourcefile.c -L. -lchat -lsocket -lnsl"
But I have no idea what this means! (I... (2 Replies)
Discussion started by: fakuse
2 Replies
7. Shell Programming and Scripting
Hi experts
cp bin root src /mnt
but not copy bin/bigfile
any help?
( I post this thread in the "redhat" forum wrongly, I don't know how to withdraw that question in that wrong forum)
Thanks (6 Replies)
Discussion started by: yanglei_fage
6 Replies
8. Shell Programming and Scripting
Hi,
I have a files in a directory as below :-
ls -1
mqdepth-S1STC02
proc-mq-S1STC01
proc-mq-S1STC02
proc-mq-S1STC03
Whereever i have S1STC i need to copy them into new file with file name S2STC.
expected output :-
ls -1
mqdepth-S2STC02
proc-mq-S2STC01
proc-mq-S2STC02... (3 Replies)
Discussion started by: satishmallidi
3 Replies
9. UNIX for Beginners Questions & Answers
I have a txt file with a list of error messages in a xml tag format, and each error message is separated with a identifier(endresult).Need to split that and copy and create a new html file.Error message has some special character. how to escape the special character and insert my data into the... (7 Replies)
Discussion started by: DevAakash
7 Replies
ECHO(3) 1 ECHO(3)
echo - Output one or more strings
SYNOPSIS
void echo (string $arg1, [string $...])
DESCRIPTION
Outputs all parameters.
echo is not actually a function (it is a language construct), so you are not required to use parentheses with it. echo (unlike some other
language constructs) does not behave like a function, so it cannot always be used in the context of a function. Additionally, if you want
to pass more than one parameter to echo, the parameters must not be enclosed within parentheses.
echo also has a shortcut syntax, where you can immediately follow the opening tag with an equals sign. Prior to PHP 5.4.0, this short syn-
tax only works with the short_open_tag configuration setting enabled.
I have <?=$foo?> foo.
PARAMETERS
o $arg1
- The parameter to output.
o $...
-
RETURN VALUES
No value is returned.
EXAMPLES
Example #1
echo examples
<?php
echo "Hello World";
echo "This spans
multiple lines. The newlines will be
output as well";
echo "This spans
multiple lines. The newlines will be
output as well.";
echo "Escaping characters is done "Like this".";
// You can use variables inside of an echo statement
$foo = "foobar";
$bar = "barbaz";
echo "foo is $foo"; // foo is foobar
// You can also use arrays
$baz = array("value" => "foo");
echo "this is {$baz['value']} !"; // this is foo !
// Using single quotes will print the variable name, not the value
echo 'foo is $foo'; // foo is $foo
// If you are not using any other characters, you can just echo variables
echo $foo; // foobar
echo $foo,$bar; // foobarbarbaz
// Some people prefer passing multiple parameters to echo over concatenation.
echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', chr(10);
echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "
";
echo <<<END
This uses the "here document" syntax to output
multiple lines with $variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!
END;
// Because echo does not behave like a function, the following code is invalid.
($some_var) ? echo 'true' : echo 'false';
// However, the following examples will work:
($some_var) ? print 'true' : print 'false'; // print is also a construct, but
// it behaves like a function, so
// it may be used in this context.
echo $some_var ? 'true': 'false'; // changing the statement around
?>
NOTES
Note
Because this is a language construct and not a function, it cannot be called using variable functions.
SEE ALSO
print(3), printf(3), flush(3), Heredoc syntax.
PHP Documentation Group ECHO(3)