How to check if file contains valid strings?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to check if file contains valid strings?
# 1  
Old 03-01-2013
How to check if file contains valid strings?

Hi All,

I am a newbie...I would like to have a function which ll check if a file contains valid strings before "=" operator. Just to give you my requirement:
assume my file has content:

Code:
  hello= gsdgsd sfdsg sgdsg sgdgdg
  world= gggg hhhh iiiii
  xxxx= pppp ppppp pppp

my requirement is to check each line of the file, get the string before "=" operator, ie in this case hello,world,xxxx. For my requirement say hello,world are valid strings. Hence i need to check if hello,world,xxxx belong to my valid string list, if not then need to return invalid from function. Please help

Last edited by Scrutinizer; 03-01-2013 at 11:54 AM.. Reason: code tags
# 2  
Old 03-01-2013
If your definition of valid strings is only alphabets, then try:
Code:
#!/bin/bash

while IFS="=" read v1 v2
do
        [[ "$v1" =~ ^[[:alpha:]]+$ ]] && echo "String: \"$v1\" is valid" || echo "String: \"$v1\" is invalid"
done < filename

This User Gave Thanks to Yoda For This Post:
# 3  
Old 03-01-2013
Thanks a lot for quick reply. I am sorry i could not understand much of the code:

Code:
while IFS="=" read v1 v2
do
        [[ "$v1" =~ ^[[:alpha:]]+$ ]] && echo "String: \"$v1\" is valid" || echo "String: \"$v1\" is invalid"
done < filename

Can you pls tell me what is IFS, read v1,v2 and what is the line you are doing inside loop. Can i store valid strings in an array and then check if the file contains only those words which belong to the array.

Last edited by Scrutinizer; 03-01-2013 at 12:54 PM.. Reason: code tags
# 4  
Old 03-01-2013
Here is a link that explains the purpose & usage of IFS

Using the operator =~, the left hand side operand $v1 is matched against the character class ^[[:alpha:]]+$ on the right hand side.

^[[:alpha:]]+$ means the pattern should start ^ with alphabets [[:alpha:]] and can have one or more occurrence + and end $

Yes you can use arrays instead for comparison.
# 5  
Old 03-01-2013
Thank You
# 6  
Old 03-01-2013
Or using more general (POSIX) shell features:
Code:
while read line
do 
  case $line in 
    *[![:alpha:]]*=*) echo "String \"${line%%=*}\" is invalid"
  esac
done < infile

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Check for valid hostnames

Hello, I am trying to develop a script to check for valid hostnames. Below are the prerequisites for a valid hostname which I got from wiki : Hostnames are composed of series of labels concatenated with dots, as are all domain names. For example, "en.wikipedia.org" is a hostname. Each label... (8 Replies)
Discussion started by: rahul2662
8 Replies

2. Shell Programming and Scripting

Check if time format is valid

How can I validate if time (HH:MM:SS) argument is valid? I got this from web but I can't modify it to exit the script if the time argument is invalid. echo $1 | awk -F ':' '{ print ($1 <= 23 && $2 <= 59 && $3 <= 59) ? "good" : "bad" }' ex: ./script.ksh 12:34:21 = okay ./script.ksh... (10 Replies)
Discussion started by: erin00
10 Replies

3. Shell Programming and Scripting

Check if a string is a valid timestamp in UNIX.

Hi all, I have date and time value in a string, I want to check if it is a valid date and time. Need help on this. Thanks (7 Replies)
Discussion started by: Pratiksha Mehra
7 Replies

4. Shell Programming and Scripting

How to check the user input to be valid using shell script?

How to check the user input to be valid using shell script? The valid input is in the format like as follows. 1. It can only have r,w,x or a hyphen and nothing else. 2. ensure the r, w, x are in the correct order. for example: rwxr-xr-x is a valid format. Thanks (5 Replies)
Discussion started by: hyeewang
5 Replies

5. Shell Programming and Scripting

how to check for valid password

I need to check if an account has a valid password. Would something like this work? read ACCNAME if grep -q "^$ACCNAME:\$6:" /etc/shadow; thenI noticed every entry in my shadow file that has a password starts with $6 ... it works for my current setup, but would it always work? I can't test... (4 Replies)
Discussion started by: ADay2Long
4 Replies

6. Homework & Coursework Questions

Bash shell - Check if value is valid directory.

1. The problem statement, all variables and given/known data: The script usage will be as follows: library.third source_directory - Your script will display an appropriate error message and exit with status 3 if no parameters are given - Your script will display an appropriate error... (2 Replies)
Discussion started by: netmaster
2 Replies

7. Shell Programming and Scripting

check file for presence of set of strings

hi everybody, I need a quick help with this issue. I have configuration file in which the following set of strings must be present. I need to check it with the bash script (leading spaces are not significant). Check must be case insensitive. Can anybody help? ... any lines <SECTION... (4 Replies)
Discussion started by: sameucho
4 Replies

8. Shell Programming and Scripting

to check whether a directory or filename path is valid or not

the script on excution should take a directory path from useran a numric input and it should check indicate whether its write or not? if the cmmd sh<script-name>,dir/path.<500>" is greater than 500 in size should be copied to dir ,temp in pwd and display the mesage'files of 2000 bytes hav been... (4 Replies)
Discussion started by: arukr
4 Replies

9. Shell Programming and Scripting

Check valid records in really big file with one commend..

Hi, I have a 5 gig file, no record terminators, field terminators are newline. The record length is 768 and I would like to check that every 768th byte is a newline and print out the byte position if it isn't. I would like to do this going either forward or backwards with one command if... (3 Replies)
Discussion started by: vtischuk@yahoo.
3 Replies

10. Shell Programming and Scripting

How to check for a valid numeric input

Hi Folks, I'm using bash script. I would like to check whether input is a number or not.(Only positive numbers).. if space or non numeric is entered, it should say "invalid input". pls help.. thanks in adv. Br/// Vijay. (1 Reply)
Discussion started by: Vijayakumarpc
1 Replies
Login or Register to Ask a Question