Sponsored Content
Full Discussion: Grep
Top Forums UNIX for Dummies Questions & Answers Grep Post 302964037 by Don Cragun on Saturday 9th of January 2016 05:30:29 AM
Old 01-09-2016
If you'd like something just using standard shell built-ins, you could also try:
Code:
#!/bin/ksh
# Usage: findstr [string]
# Read lines from standard input and for each line read:
# 1. Print the input line.
# 2. Print the offset of each occurrence of string ("ab" if no operands are
#    given) in that line (with the 1st character on each line being offset 1.
# 3. Print the number of occurrences of string found on the input line.
# Note that if the string operand contains any non-alphnumeric characters, the
# results are unspecified.
string=${1:-ab}
while IFS= read -r line
do	printf 'Input: "%s"\n' "$line"
	cnt=0
	offset=1
	while [ "${line#*$string}" != "$line" ]
	do	cnt=$((cnt + 1))
		left=${line#*$string}
		offset=$((offset + ${#line} - ${#left} - ${#string}))
		printf '\t"%s" found at offset %d\n' "$string" $offset
		offset=$((offset + ${#string}))
		line=$left
	done
	printf '\t"%s" found %d time(s).\n' "$string" $cnt
done

If this script is invoked with:
Code:
printf '%s\n' abcabc abcdedabxxxxabxxxab xxxxxx | ./findstr

it produces the output:
Code:
Input: "abcabc"
	"ab" found at offset 1
	"ab" found at offset 4
	"ab" found 2 time(s).
Input: "abcdedabxxxxabxxxab"
	"ab" found at offset 1
	"ab" found at offset 7
	"ab" found at offset 13
	"ab" found at offset 18
	"ab" found 4 time(s).
Input: "xxxxxx"
	"ab" found 0 time(s).

And, if it is invoked with:
Code:
printf '%s\n' abcabc abcdedabxxxxabxxxab xxxxxx|./findstr xx

it produces the output:
Code:
Input: "abcabc"
	"xx" found 0 time(s).
Input: "abcdedabxxxxabxxxab"
	"xx" found at offset 9
	"xx" found at offset 11
	"xx" found at offset 15
	"xx" found 3 time(s).
Input: "xxxxxx"
	"xx" found at offset 1
	"xx" found at offset 3
	"xx" found at offset 5
	"xx" found 3 time(s).

Although this was tested using a 1993 version of the Korn shell, it will work with any shell conforming to the POSIX standards.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

MEM=`ps v $PPID| grep -i db2 | grep -v grep| awk '{ if ( $7 ~ " " ) { print 0 } else

Hi Guys, I need to set the value of $7 to zero in case $7 is NULL. I've tried the below command but doesn't work. Any ideas. thanks guys. MEM=`ps v $PPID| grep -i db2 | grep -v grep| awk '{ if ( $7 ~ " " ) { print 0 } else { print $7}}' ` Harby. (4 Replies)
Discussion started by: hariza
4 Replies

2. UNIX for Dummies Questions & Answers

| help | unix | grep - Can I use grep to return a string with exactly n matches?

Hello, I looking to use grep to return a string with exactly n matches. I'm building off this: ls -aLl /bin | grep '^.\{9\}x' | tr -s ' ' -rwxr-xr-x 1 root root 632816 Nov 25 2008 vi -rwxr-xr-x 1 root root 632816 Nov 25 2008 view -rwxr-xr-x 1 root root 16008 May 25 2008... (7 Replies)
Discussion started by: MykC
7 Replies

3. UNIX for Dummies Questions & Answers

| help | unix | grep (GNU grep) 2.5.1 | advanced regex syntax

Hello, I'm working on unix with grep (GNU grep) 2.5.1. I'm going through some of the newer regex syntax using Regular Expression Reference - Advanced Syntax a guide. ls -aLl /bin | grep "\(x\)" Which works, just highlights 'x' where ever, when ever. I'm trying to to get (?:) to work but... (4 Replies)
Discussion started by: MykC
4 Replies

4. Shell Programming and Scripting

grep for certain files using a file as input to grep and then move

Hi All, I need to grep few files which has words like the below in the file name , which i want to put it in a file and and grep for the files which contain these names and move it to a new directory , full file name -C20091210.1000-20091210.1100_SMGBSC3:1000... (2 Replies)
Discussion started by: anita07
2 Replies

5. UNIX for Dummies Questions & Answers

Difference between grep, egrep & grep -i

Hi All, Please i need to know the difference between grep, egrep & grep -i when used to serach through a file. My platform is SunOS 5.9 & i'm using the korn shell. Regards, - divroro12 - (2 Replies)
Discussion started by: divroro12
2 Replies

6. UNIX for Dummies Questions & Answers

Advanced grep'in... grep for data next to static element.

I have a directory I need to grep which consists of numbered sub directories. The sub directory names change daily. A file resides in this main directory that shows which sub directories are FULL backups or INCREMENTAL backups. My goal is to grep the directory for the word "full" and then... (2 Replies)
Discussion started by: SysAdm2
2 Replies

7. Shell Programming and Scripting

AWK/GREP: grep only lines starting with integer

I have an input file 12.4 1.72849432773174e+01 -7.74784188610632e+01 12.5 9.59432114416327e-01 -7.87018212757537e+01 15.6 5.20139995965960e-01 -5.61612429666624e+01 29.3 3.76696387248366e+00 -7.42896194101892e+01 32.1 1.86899877018077e+01 -7.56508762501408e+01 35 6.98857157014640e+00... (2 Replies)
Discussion started by: chrisjorg
2 Replies

8. UNIX for Dummies Questions & Answers

Bash - CLI - grep - Passing result to grep through pipe

Hello. I want to get all modules which are loaded and which name are exactly 2 characters long and not more than 2 characters and begin with "nv" lsmod | (e)grep '^nv???????????? I want to get all modules which are loaded and which name begin with "nv" and are 2 to 7 characters long ... (1 Reply)
Discussion started by: jcdole
1 Replies

9. UNIX for Dummies Questions & Answers

Piping grep into awk, read the next line using grep

Hi, I have a number of files containing the information below. """"" Fundallinfo 6.3950 14.9715 14.0482 """"" I would like to grep for Fundallinfo and use it to read the next line? I ideally would like to read the three numbers that follow in the next line and... (2 Replies)
Discussion started by: Paul Moghadam
2 Replies

10. Shell Programming and Scripting

Inconsistent `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l`

i have this line of code that looks for the same file if it is currently running and returns the count. `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l` basically it is assigned to a variable ISRUNNING=`ps -eaf -o args | grep -i sfs_pcard_load_file.ksh |... (6 Replies)
Discussion started by: wtolentino
6 Replies
DateTime::TimeZone::OffsetOnly(3)			User Contributed Perl Documentation			 DateTime::TimeZone::OffsetOnly(3)

NAME
DateTime::TimeZone::OffsetOnly - A DateTime::TimeZone object that just contains an offset VERSION
version 1.63 SYNOPSIS
my $offset_tz = DateTime::TimeZone->new( name => '-0300' ); DESCRIPTION
This class is used to provide the DateTime::TimeZone API needed by DateTime.pm, but with a fixed offset. An object in this class always returns the same offset as was given in its constructor, regardless of the date. USAGE
This class has the same methods as a real time zone object, but the "category()" method returns undef. DateTime::TimeZone::OffsetOnly->new ( offset => $offset ) The value given to the offset parameter must be a string such as "+0300". Strings will be converted into numbers by the "DateTime::TimeZone::offset_as_seconds()" function. $tz->offset_for_datetime( $datetime ) No matter what date is given, the offset provided to the constructor is always used. $tz->name() $tz->short_name_for_datetime() Both of these methods return the offset in string form. AUTHOR
Dave Rolsky <autarch@urth.org> COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Dave Rolsky. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.18.2 2013-10-28 DateTime::TimeZone::OffsetOnly(3)
All times are GMT -4. The time now is 06:05 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy