03-16-2005
Using Grep in a Shell Script
Hi everyone,
Im trying to write a Shell script that basically creates a set of files based on a file with many records. For example if a file called dummy has the following content:
a.txt
1st line of a's text file
2nd line of a's text file
3rd line of a's text file
b.txt
1st line of b's text file
2nd line of b's text file
3rd line of b's text file
After running my shell script, 2 files should be created. The first should be called a.txt and its contents should be:
1st line of a's text file
2nd line of a's text file
3rd line of a's text file
The second file created should be called b.txt and its contents should be:
1st line of b's text file
2nd line of b's text file
3rd line of b's text file
So essentialy the name of the file is followed by its content in dummy. I've attempted to write a script to do this but ive being having problems getting it to work. If someone has done this before using similar code or completely different code could you please help me out? I think i have some error in my grep line and also other minor errors. My shell script code
is as follows:
#look at one line at a time in dummy file
line_number=1
#number of lines in file, temporarliy set to 9 but should be whatever the #number of lines in the file is
LENGTH=9
while [ $line_number -le $LENGTH ]
do
$current_line=`tail +$line_number < dummy|head -n$line_number|cat`
if [ grep ".txt" $current_line ]
then
FILENAME=$current_line
else
`echo $current_line >> $FILENAME`
fi
#$line_number='exp $line_number + 1'
line_number=`expr $line_number+1`
done
thanks
nbvcxzdz
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I have a problem with a simple script I am trying to write. I want a user to type grep, sed commands that are then stored in variables. Those variables are stored in a function, and the function is then called to execute the commands. The idea is that the user does it step by step.
... (4 Replies)
Discussion started by: Trufla
4 Replies
2. Shell Programming and Scripting
Hello
I do want to write a script which will check any errors say "-error" in the log file then have to send email to the concern person . And the concern person will correct the error .
Next time if the script runs eventhough the error has been corrected it will ... (1 Reply)
Discussion started by: Krishnaramjis
1 Replies
3. Shell Programming and Scripting
Hi,
I am writing a shell script that checks catalina logs on a production system and mails me if it detects errors.
It greps the logs for known errors which i have defined as variables.
The problem is the logs are huge, approx 30,000 before they rotate.
So I am forced to use grep instead... (3 Replies)
Discussion started by: Moxy
3 Replies
4. Shell Programming and Scripting
Hey there, newbie question :
echo "::kmastat" | /usr/bin/mdb -k | grep Total | grep "kmem_*"
Total 17326080 432853 0
Total 426508288 65458 0
Total 704757760 1572001732 0
Total ... (11 Replies)
Discussion started by: shriyer
11 Replies
5. Shell Programming and Scripting
Hi,
I have written the following shell script -
Error_String="error"
var1="| grep -v note1 | grep -v note2"
grep -i $Error_String /users/mqm/Pwork/Err/*.out $var1
The above script gives error saying "grep: can't open |
grep: can't open grep
grep: can't open -v" etc
In my program... (3 Replies)
Discussion started by: prasannasupp
3 Replies
6. Shell Programming and Scripting
Hi guys, I have written this script, however the outcome is invalid. It contains grep search that is not needed:
Script:
#!/bin/bash
#this is a test script
FILES=$(ls /home/student/bin/dir1/*)
GREPFUNC=$(grep -E -i "login|Successfully" ORProxyTC`date '+%m%d%Y'`*.txt/ ${FILES})... (14 Replies)
Discussion started by: DallasT
14 Replies
7. Shell Programming and Scripting
I need help in the following script. I want to grep the sql errors insert into the error table and exit the shell script if there is any error, otherwise keep running the scripts.
Here is my script
#!/bin/csh -f
source .orapass
set user = $USER
set pass = $PASS
cd /opt/data/scripts
echo... (2 Replies)
Discussion started by: allinshell99
2 Replies
8. Shell Programming and Scripting
Hi guys - below is my script that is checking for current file, size and timestamp.
However I added a "grep" feature in it (line in red), but not getting the desired result.
I am trying to acheive in output:
1. Show me the file name, timestamp, size and grep'ed words
It would be a... (2 Replies)
Discussion started by: DallasT
2 Replies
9. Shell Programming and Scripting
hi guys
very new to this game so excuse my ignorance. I need to create a script that simply greps for a text string and then outputs a message depending on whether the text string is there or not. The script I have setup is below, but whenever I run it I get the following error:
... (5 Replies)
Discussion started by: ap2112
5 Replies
10. Shell Programming and Scripting
HI Guys hoping some one can help
I have two files on both containing uk phone numbers
master is a file which has been collated over a few years ad currently contains around 4 million numbers
new is a file which also contains 4 million number i need to split new nto two separate files... (4 Replies)
Discussion started by: dunryc
4 Replies
LEARN ABOUT DEBIAN
shell::perl::dumper
Shell::Perl::Dumper(3pm) User Contributed Perl Documentation Shell::Perl::Dumper(3pm)
NAME
Shell::Perl::Dumper - Dumpers for Shell::Perl
SYNOPSYS
use Shell::Perl::Dumper;
$dumper = Shell::Perl::Dumper::Plain->new;
print $dumper->dump_scalar($scalar);
print $dumper->dump_list(@list);
DESCRIPTION
In "pirl", the result of the evaluation is transformed into a string to be printed. As this result may be a pretty complex data structure,
the shell provides a hook for you to pretty-print these answers just the way you want.
By default, "pirl" will try to convert the results via "Data::Dump". That means the output will be Perl code that may be run to get the
data structure again. Alternatively, the shell may use "Data::Dumper" or "Data::Dump::Streamer" with almost the same result with respect
to the representation as Perl code. (But the output of the modules differ enough for sufficiently complex data.)
Other options are to set the output to produce YAML or a plain simple-minded solution which basically turns the result to string via simple
interpolation.
All of these are implemented via dumper objects. Dumpers are meant to be used like that:
$dumper = Some::Dumper::Class->new; # build a dumper
$s = $dumper->dump_scalar($scalar); # from scalar to string
$s = $dumper->dump_list(@list); # from list to string
METHODS
The following methods compose the expected API of a dumper, as used by Shell::Perl.
new
$dumper = $class->new(@args);
Constructs a dumper.
dump_scalar
$s = $dumper->dump_scalar($scalar);
Turns a scalar into a string representation.
dump_list
$s = $dumper->dump_list(@list);
Turns a list into a string representation.
is_available
$ok = $class->is_available
This is an optional class method. If it exists, it means that the class has external dependencies (like "Shell::Perl::Data::Dump"
depends on "Data::Dump") and whether these may be loaded when needed. If they can, this method returns true. Otherwise, returning false
means that a dumper instance of this class probably cannot work. This is typically because the dependency is not installed or cannot be
loaded due to an installation problem.
This is the algorithm used by Shell::Perl XXX XXX XXX
1.
THE STANDARD DUMPERS
Shell::Perl provides four standard dumpers:
* Shell::Perl::Data::Dump
* Shell::Perl::Data::Dumper
* Shell::Perl::Data::Dump::Streamer
* Shell::Perl::Dumper::YAML
* Shell::Perl::Dumper::Plain
which corresponds to the four options of the command " :set out ": "D", "DD", "DDS", "Y", and "P" respectively.
Data::Dump
The package "Shell::Perl::Data::Dump" implements a dumper which uses Data::Dump to turn Perl variables into a string representation.
It is used like this:
use Shell::Perl::Dumper;
if (!Shell::Perl::Data::Dump->is_available) {
die "the dumper cannot be loaded correctly"
}
$dumper = Shell::Perl::Data::Dump->new;
print $dumper->dump_scalar($scalar);
print $dumper->dump_list(@list);
Examples of its output:
pirl > :set out D
pirl > { a => 3 } #scalar
{ a => 3 }
pirl > (1, 2, "a") #list
(1, 2, "a")
Data::Dumper
The package "Shell::Perl::Data::Dumper" implements a dumper which uses Data::Dumper to turn Perl variables into a string representation.
It is used like this:
use Shell::Perl::Dumper;
if (!Shell::Perl::Data::Dumper->is_available) {
die "the dumper cannot be loaded correctly"
}
$dumper = Shell::Perl::Data::Dumper->new;
print $dumper->dump_scalar($scalar);
print $dumper->dump_list(@list);
Examples of its output:
pirl > :set out DD
pirl > { a => 3 } #scalar
@var = (
{
'a' => 3
}
);
pirl > (1, 2, "a") #list
@var = (
1,
2,
'a'
);
YAML
The package "Shell::Perl::Dumper::YAML" implements a dumper which uses YAML::Syck or YAML to turn Perl variables into a string
representation.
It is used like this:
use Shell::Perl::Dumper;
if (!Shell::Perl::Dumper::YAML->is_available) {
die "the dumper cannot be loaded correctly"
}
$dumper = Shell::Perl::Dumper::YAML->new;
print $dumper->dump_scalar($scalar);
print $dumper->dump_list(@list);
Examples of its output:
pirl > :set out Y
pirl @> { a => 3 } #scalar
---
a: 3
pirl @> (1, 2, "a") #list
--- 1
--- 2
--- a
When loading, "YAML::Syck" is preferred to "YAML". If it is not avaiable, the "YAML" module is the second option.
Data::Dump::Streamer
The documentation is yet to be written.
Plain Dumper
The package "Shell::Perl::Dumper::Plain" implements a dumper which uses string interpolation to turn Perl variables into strings.
It is used like this:
use Shell::Perl::Dumper;
$dumper = Shell::Perl::Dumper::Plain->new;
print $dumper->dump_scalar($scalar);
print $dumper->dump_list(@list);
Examples of its output:
pirl > :set out P
pirl > { a => 3 } #scalar
HASH(0x1094d2c0)
pirl > (1, 2, "a") #list
1 2 a
SEE ALSO
Shell::Perl
BUGS
Please report bugs via CPAN RT <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Shell-Perl> or <mailto://bugs-Shell-Perl@rt.cpan.org>.
AUTHORS
Adriano R. Ferreira, <ferreira@cpan.org>
Caio Marcelo, <cmarcelo@gmail.com>
COPYRIGHT AND LICENSE
Copyright (C) 2007aXX2011 by Adriano R. Ferreira
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl v5.10.1 2011-03-10 Shell::Perl::Dumper(3pm)