Hello All , I am learning Shell Script and i am very fresher . I need help to write one shell script . We are generating several logs files in our testsuite system . I need to generate fails as per the host ,version and productwise . The data is stored in different directories and run.log contains fails records with ! sign . I am extracting fails from each directory but cant't accumalte as per the product wise . because product name is stored in Master file product.dat. The product.dat is Master file contains 2 column Test Name ProductName /dialy/test SiCat /daily/yyyy YRS /daily/ttttt SiCat /daily/rttttt SiCat /daily/wwww PSD /daily/uuuu YRS The second file which is generated only contain fails test name for whole system . The data format is like this /users/test/krachel/9/run.log ! /daily/wwww ! /daily/test1 ! /daily/rrrrr /users/test/limo/10/run.log ! /daily/wwww ! /daily/test1 The host and version i want to extract form line /users/test/ I have store data like this Host Version SiCat YRS PSD limo 10 3 3 5 krache 9 5 7 0
Due to the fact of not knowing shell scripting quite good, why do you want to do that with a shell script instead of using sth. like perl, python, php, scripting languages that exists on most *nix installations, that make tasks like this more easy.
A solution is no help. But you can find all the things you need in perl here: http://perldoc.perl.org/perl.html Here you can find things about opening files (http://perldoc.perl.org/functions/open.html), how to cycle to its contents. Split (http://perldoc.perl.org/functions/split.html), subtring (http://perldoc.perl.org/functions/substr.html) will be helpfull for stringmanipulation, in that case. It is also helpfull to take a look at perldata (http://perldoc.perl.org/perldata.html) for datatypes you could use storing and cumulating your data read from the files. hth
This is an essential read if you want to do shell scripting: http://www.tldp.org/LDP/abs/html/index.html
Um, I'm not sure exactly what you need, but if you are just wanting to extract fields from a file that is easy. For example, if the file is '/users/test/file' and the contents are what you listed above then you would grab the HOST (column 1) and VERSION (column 2) this way: Code: wdierkes$ cat /users/test/file | awk {' print "HOST: "$1 " VERSION: "$2 '} HOST: limo VERSION: 10 HOST: krache VERSION: 9 That is just a very simple example. Please feel free to clarify if that doesn't answer your question.