Visit Our UNIX and Linux User Community


UNIX Shell Scripting (Solaris) for File Checking


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting UNIX Shell Scripting (Solaris) for File Checking
# 8  
Old 05-31-2016
Hi MadeinGermany,

I;m so sorry but im looking inside of each file. not just the file name, but your codes has given me some idea. Thanks a lot and hope you could help me more. Smilie

---------- Post updated at 03:06 AM ---------- Previous update was at 12:49 AM ----------

Hi RudiC,

i am open for other codes and scripts. Smilie

lately this is my script.

Code:
BANANA_DIR=/home/dave/cfg/dirBANANA.cfg
ORANGE_DIR=/home/dave/cfg/dirORANGE.cfg
APPLE_DIR=/home/dave/cfg/dirAPPLE.cfg
RESULT=/home/dave/
banana_file=`cat $BANANA_DIR`
orange_file=`cat $ORANGE_DIR`
apple_file=`cat $APPLE_DIR`
#BANANA
for a in $banana_file
    do 
	cd $a
	touch Statuscheck.tmp
	ls -lrt | grep -l BANANA > Statuscheck.tmp
    FILE=`cat Statuscheck.tmp | wc -l`
    if [ $FILE -ne 0 ]
	then
	   echo "Invalid file in $a directory" > $RESULT/dummyevents.log
    fi
    rm Statuscheck.tmp
    done
#ORANGE
for b in $orange_file
    do 
	cd $b
	touch Statuscheck.tmp
	ls -lrt | grep -l ORANGE > Statuscheck.tmp
    FILE=`cat Statuscheck.tmp | wc -l`
    if [ $FILE -ne 0 ]
	then
	   echo "Invalid file in $b directory" > $RESULT/dummyevents.log
    fi
    rm Statuscheck.tmp
    done
#APPLE
for c in $ftrord_file
    do 
	cd $c
	touch Statuscheck.tmp
	ls -lrt | grep -l APPLE > Statuscheck.tmp
    FILE=`cat Statuscheck.tmp | wc -l`
    if [ $FILE -ne 0 ]
	then
	   echo "Invalid file in $c directory" > $RESULT/dummyevents.log
    fi
    rm Statuscheck.tmp
    done


then yyou are asking for the cfg. i dont know how to insert image because it is asking for the url. im sorry.. but my /home/dave/cfg contains

dirBANANA.cfg
dirORANGE.cfg
dirAPPLE.Cfg

which contains the directories where the script will grep for "BANANA" "ORANGE" and "APPLE" word.

home/dave/cfg also contains
grepBANANA.cfg
grepORANGE.cfg
grepAPPLE.cfg

which contains the word "BANANA" or "ORANGE" or "APPLE" itself,
# 9  
Old 05-31-2016
So you corrected the most obvious errors in your script, which is good. You are "open for other codes and scripts", which is good, too. Did you consider the "loop advice"?

We still don't know what your config files' contents look like. And, if your grep*.cfg files contain the keywords, why are you looking for string constants in your script? What is for c in $ftrord_file, by the way?

I've shown you a very simplistic example of how one could (partly, admittedly) approach your request, given you're free in structuring the config files. But even with another configuration setup, there's many, simple ways to achieve what you need.
This User Gave Thanks to RudiC For This Post:
# 10  
Old 05-31-2016
Hi RudiC,

i have considered your script earlier which is

Code:
while read DIR KW REST; do cd $DIR; echo invalid files in $DIR: $(ls !(.|..|$(grep -l $KW *))); cd ..; done < dave.cfg;
invalid files in ./apple: X y
invalid files in ./orange: Z
invalid files in ./banana: x

but i forgot to ask what is the function of this
Code:
while read DIR KW REST;

Code:
for c in $ftrord_file

is supposed to be
Code:
for c in $appe_file

sorry that's my bad

yes. even my friends tell me that my requirements are so easy but im so sorry. i am just a super duper beginner in unix. and i have this script

Code:
#!/bin/sh

cd home/testfiles/banana

grep -v BANANA *

if [ $grep 
then 
echo "There is an unknown file in this directory."
elif [ $grep 
then
echo "There is no unknown file in this directory."
fi

but i cant complete this simple one bacuase lack of knowledge in loop commands if commands else commands. and i never continued this script becuase as i have said earlier i have 7 directories. so if i use this script it would be a long .sh file then. so my boss told me that you can create cfg files for your directories but i never really understood what he means. im so sorry
# 11  
Old 05-31-2016
So, where do we start? Being an electronics engineer, is the assumption correct that you know what a specification is? Loosely phrased, the description of a target (contents, shape, structure, timing) and the collection of basic data (setup, sample input, ...) to start from, constraints and/or exceptions and/or boundary conditions, tools available (or forbidden), sometimes accompanied by ideas or even rules/instructions on how to get there.
Still online? Let's start with

The target: Paraphrased from your post#1: A list of directories with the information "contains valid/invalid files". Please refine to taste.

The basics: A number of subdirectories in your home directory (definition varies in above posts) with files to be searched for keywords. Please be very aware that we don't know anything about your computer/(file-) system/directory structure/anything. So some samples might help!
Additional info needed:
- What flexibiltiy is required?
- Do the subdirs change a lot?
- Are there more subdirs?
- - How to define the interesting ones?
- - How to exclude the others?
- - Use a "white list" (= config file)?
- Do the keywords change?
- - How to provide?
- - Are there more than one keyword per subdir?

- config files to be used?
- - one? many?
- - structure of the config file(s)
- - up to the service provider?

Constraints/exceptions/boundary conditions:
- not (yet) known

The tools: available *nix commands/versions (your Solaris have may some restrictions that other OS don't have)
- pure shell (which do you use?)
- text processing commands (sed, awk, perl, ...)
- up to the service provider?



I'll stop here with this non-exhaustive list. Feel free to complete and answer.


You now may say: "What an immense effort for a minor task like a mere 'file list for 7 directories' ". I'd request you to ponder the overall time it took for the two of us to type posts #1 to #10 compared to you making up your mind and put together a small set of basic data, stringent rules, and a precise, distinct result, with which a satisfactory solution would have been proposed within hours if not minutes.

I'd propose you take a step back and try to rephrase your request considering at least part of above...

Last edited by RudiC; 05-31-2016 at 07:52 AM..
This User Gave Thanks to RudiC For This Post:
# 12  
Old 05-31-2016
im so sorry for all the confusion and all my mistakes regarding my past posts. i hope you understand that im a beginner. but i am willing to learn and i am studying and learning these things.

target: a "dummyevents.log" that contains the directories that has "invalid files" in it.

flexibility: any
subdirs/dirs: only 7 directories to be checked
keywords does not change
1 word to be grep per directory

im so sorry regarding config files, we can use it or not depending on the script. the use of cfg file is a suggestion only to make my script short and simple

and im so sorry icant answer all you questions and i dont know the versions or model of my unix but you are correct i have some restrictions in commands
i am using UNIX solaris shell script when i perform showrev -a

Release: 5.8
Kernel architecture: sun4u
Application architecture: sparc
Hardware provider: Sun_Microsystems
Domain:
Kernel version: SunOS 5.8 Generic 117350-53 Jan 2008

OpenWindows version:
X11 Version 6.4.1 14 January 2008

Rephrased request: i have 7 directories, each directory as dafault files, those default files have 1 word in common in it.

home/dave/banana - default files has "BANANA" word in it
home/dave/orange - default files has "ORANGE" word in it
home/dave/orange1- default files has "ORANGE" word in it
home/dave/orange2- default files has "ORANGE" word in it
home/dave/apple - default files has "APPLE" word in it
home/dave/apple1 - default files has "APPLE" word in it
home/dave/apple2 - default files has "APPLE" word in it


i want a script which is as much as possible a short and a simple one,

for example there is a file in home/dave/banana without a "BANANA" word in it. so the script would reverse grep and will detect the files or files without "BANANA" in it then put a "dummyevent.log" in home/dave which when you view that "dumymevent.log" you will see the directory home/dave/banana.

then after that the script will go to home/dave/orange then reveser grep and detect the files without "ORANGE" in it then add home/dave/orange directory in the "dummyevents.log" located at home/dave.

and so on and so forth the remaining directories. but at the same time if the scriprt does not detect any invalid files (which means the all the files in the directory contains the common word) the sciprt will results also a "dummyevents.log" in home/dave which when you view it, it contains only "There is no invalid files in the given directories."

i hope you udnestand.. i cant send you a private message becuase sending a pm requires a minimum of 10 posts. Thanks.

Last edited by daveaztig14; 05-31-2016 at 09:40 AM.. Reason: added information
# 13  
Old 05-31-2016
What's your shell?

And: No PM please for technical questions/data.

Last edited by RudiC; 05-31-2016 at 10:11 AM..
This User Gave Thanks to RudiC For This Post:
# 14  
Old 05-31-2016
korn shell (ksh)

Ok ok. understood no pm to any moderator(s). noted.

Last edited by daveaztig14; 05-31-2016 at 10:17 AM..

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Solaris Shell Scripting

Hi, Want to know, is there any way to restrict a Solaris user to Single Login. Means a particular user can login once and if he or someone else tries to login with his ID then a message displayed "user already logged in" and denies his attempt. Regard, Jeet (1 Reply)
Discussion started by: CountJeet
1 Replies

2. Shell Programming and Scripting

Read csv file, convert the data and make one text file in UNIX shell scripting

I have input data looks like this which is a part of a csv file 7,1265,76548,"0102:04" 8,1266,76545,"0112:04" I need to make the output data should look like this and the output data will be part of text file: 7|1265000 |7654899 |A| 8|12660000 |76545999 |B| The logic behind the... (6 Replies)
Discussion started by: RJG
6 Replies

3. Shell Programming and Scripting

How to add trailer record at the end of the flat file in the unix ksh shell scripting?

Hi, How to add trailer record at the end of the flat file in the unix ksh shell scripting can you please let me know the procedure Regards Srikanth (3 Replies)
Discussion started by: srikanth_sagi
3 Replies

4. Shell Programming and Scripting

Request for file read option in Unix shell scripting

Hi Friends, I would like to read all the record from one txt file to other file txt For example I have two txt file a.txt and b.txt. I need to read a.txt record by record and I need add the system date @ end of each record before moving it to b.txt. Could you please share the coding for... (4 Replies)
Discussion started by: vinoth124
4 Replies

5. Shell Programming and Scripting

generate tabular output from an input text file in unix shell scripting

Hi, I have the output (as below) which i want it to be in a table. For e.g. space utilization in PSE on path /logs is 0% space utilization in PSE on path /logs/tuxedo/tuxlsp is 16% space utilization in PSE on path /ldvarlsp/lsp/log is 37% space utilization in PSE on path /home is 6%... (7 Replies)
Discussion started by: pkbond
7 Replies

6. Shell Programming and Scripting

C Shell Scripting - HELP! - checking total args in a script

Hi, I 'm trying to learn the scripting language and am trying to create a script to open a C Program, allow the user to edit it, and then run it. What I have works but only when you enter the name to be compiled and the c program, but what if you only entered the 1 argument (cprogram.c) ? but I 'm... (3 Replies)
Discussion started by: patel_ankz
3 Replies

7. UNIX for Dummies Questions & Answers

Unix Shell Scripting -- update employees not present in input file

ALL, My shell script takes a employee file as input. I have to identify the list of employees not in the input file and update their status in the database. Approach I followed: by traversing through the input file add all the emplid's to a variable. update the status of employees not in... (2 Replies)
Discussion started by: sailussr
2 Replies

8. Solaris

How to check the file existence using shell scripting in Solaris-10

Hi, I have a script which will check the fiel existence, the lines are as below if !(test -d ./data) then mkdir data fi In the first line error occurs as below generatelicense.sh: syntax error at line 2: `!' unexpected Where as this script works fine in linux OS. How to solve... (2 Replies)
Discussion started by: krevathi1912
2 Replies

9. AIX

Unix shell scripting to find latest file having timestamp embedded...

Hi guys, I have a directory in UNIX having files with the below format, i need to pickup the latest file having recent timestamp embedded on it, then need to rename it to a standard file name. Below is the file format: filename_yyyymmdd.csv, i need to pick the latest and move it with the... (2 Replies)
Discussion started by: kaushik25
2 Replies

10. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies

Featured Tech Videos