Kumar
Kumar

Reputation: 371

How can i grep a nearer word from a file?

How can i grep a nearer word from a file ?

E.g

04-02-2010  Workingday
05-02-2010  Workingday
06-02-2010  Workingday
07-02-2010  Holiday
08-02-2010  Workingday
09-02-2010  Workingday

I stored above data in a file 'feb2010',

By this commend i stored date in one variable date=date '+%d-%m-%Y'

if date is 06-02-2010 , i want to grep " 06-02-2010 Workingday "

and want to store the string Working day in a variable

Upvotes: 0

Views: 197

Answers (4)

ghostdog74
ghostdog74

Reputation: 343191

using the bash shell

#!/bin/bash
mydate=$(date '+%d-%m-%Y')
while read -r d day
do
    case "$d" in
        "$mydate"*) echo $day;;
    esac
done < feb2010

Upvotes: 1

Dennis Williamson
Dennis Williamson

Reputation: 360693

type=($(grep $date feb2010))    # make an array
type=${type[1]}                 # only keep the second element

Upvotes: 0

Greg Bacon
Greg Bacon

Reputation: 139711

#! /bin/bash

grep `date '+%d-%m-%Y'` feb2010 |
while read date type; do
  echo $type
done

Upvotes: 1

Thomas
Thomas

Reputation: 182093

daytype=`grep $date feb2010 | cut -c13-`

The grep outputs the line, then the cut cuts off everything before the 13th character on that line. (Another possibility is cut -f3 -d' ', which outputs the field after the second space.) The result is stored in the variable daytype.

This assumes that the date occurs only once in the file.

Upvotes: 1

Related Questions