Sponsored Content
Top Forums Shell Programming and Scripting Extract n-digits from string in perl Post 303003080 by james2009 on Thursday 7th of September 2017 11:43:23 AM
Old 09-07-2017
Quote:
Originally Posted by rbatte1
I would suggest using split being saved to an array, then display the appropriate field. Perhaps something like this might help:-
Code:
  my $line = "01/05/2017 10:23:41 [ABCD-22357$0]: file.log.38: database error, MODE=SINGLE, LEVEL=critical, STATE: 01170255 (mode main" ;

  my @tmp_array = split (/ /,$line) ;
  print $tmp_array[9] ;


Does that help?
Robin
Thanks Robin, but i'm looking at a situation where the 8-digit number can appear in another position in the string. In that case it will not always be the 9th element of the array.

---------- Post updated at 10:43 AM ---------- Previous update was at 10:28 AM ----------

Quote:
Originally Posted by durden_tyler
If the 8-digit number is always preceded by the word "STATE:" then you could use regular expressions as well:

Code:
$
$ cat mylog.txt
01/05/2017 10:23:41 [ABCD-22357$0]: file.log.38: database error, MODE=SINGLE, LEVEL=critical, STATE: 01170255 (mode main
$
$ perl -lne 'print $1 if /STATE:\s+(\d+)/' mylog.txt
01170255
$

If it could be preceded by more than word, then specify them all in your regular expression, like so:

Code:
$
$ cat mylog_1.txt
01/05/2017 10:23:41 [ABCD-22357$0]: file.log.38: database error, MODE=SINGLE, LEVEL=critical, STATE: 01170255 (mode main
something else
over here
01/05/2017 10:23:41 [ABCD-22357$0]: file.log.38: database error, MODE=SINGLE, LEVEL=critical, BLAH: 12345678 (mode main
some other stuff
$
$ perl -lne 'print $2 if /(STATE|BLAH):\s+(\d+)/' mylog_1.txt
01170255
12345678
$

How can i do this inside a perl script and not on the command line?
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

to check if a string has only digits

Hi guys, I am not very experienced in writing ksh scripts and I am trying to write a piece of code that indicates if a given string contains only digits and no alphabet (upper or lower case). If i write it my way it would turn out to have a lot of comparisons.. :eek: Thanks a lot in... (3 Replies)
Discussion started by: lakshmikanth
3 Replies

2. Shell Programming and Scripting

Extract digits at end of string

I have a string like xxxxxx44. What's the best way to extract the digits (one or more) in a ksh script? Thanks (6 Replies)
Discussion started by: offirc
6 Replies

3. Shell Programming and Scripting

perl newbie: how to extract an unknown word from a string

hi, im quite new to perl regexp. i have a problem where i want to extract a word from a given string. but the word is unknown, only fact is that it appears as the second word in the string. Eg. input string(s) : char var1 = 'A'; int var2 = 10; char *ptr; and what i want to do is... (3 Replies)
Discussion started by: wolwy_pete
3 Replies

4. Shell Programming and Scripting

Isolate and Extract a Pattern Substring (Digits Only)

Hi guys, I have a text file report generated from egrepping multiple files. The text files themselves are obtianed after many succesive refinements, so they contain already the desired number, but this is surrounded by unwanted characters, newlines, spaces, it is not always at the start of the... (6 Replies)
Discussion started by: netfreighter
6 Replies

5. Shell Programming and Scripting

Perl Extract String

Hi, I have a string like "something is good wanted (bla bla)" I need to get the world "wanted" from this string and "assign it to a variable".. but it's not a static word so i want to get that word by searching the pattern as follows <space>desiredword<space>( and i tried to get that... (6 Replies)
Discussion started by: xlynx3
6 Replies

6. Shell Programming and Scripting

Perl REGEX - How do extract a string in a line?

Hi Guys, In the following line: cn=portal.090710.191533.428571000,cn=groups,dc=mp,dc=rj,dc=gov,dc=br I need to extract this string: portal.090710.191533.428571000 As you can see this string always will be bettween "cn=" and "," strings. Someone know one regular expression to... (4 Replies)
Discussion started by: maverick-ski
4 Replies

7. Shell Programming and Scripting

extract string and sending it into a new file in perl program

Hi, I have a input file with following values (test.out) I would like to grep all lines with word 'PANIC' and sent it another file using perl program with grep command. I have been trying different ways and not working. Pls advice. Thanks a lot for the help. --example--... (3 Replies)
Discussion started by: hudson03051nh
3 Replies

8. Shell Programming and Scripting

extract digits from a string in unix

Hi all, i have such string stored in a variable var1 = 00000120 i want the o/p var1 = 120 is it possible to have such o/p in ksh/bash ... thanx in advance for the help sonu (3 Replies)
Discussion started by: sonu_pal
3 Replies

9. Shell Programming and Scripting

awk extract certain digits from file with index substr

I would like to extract a digit from $0 starting 2,30 to 3,99 or 2.30 to 3.99 Can somebody fix this? awk --re-interval '{if($0 ~ /{1}{2}/) {print FILENAME, substr($0,index($0,/{1}{2}/) , 4)}}'input abcdefg sdlfkj 3,29 g. lasdfj alsdfjasl 2.86 gr. slkjds sldkd lskdjfsl sdfkj kdjlksj 3,34 g... (4 Replies)
Discussion started by: sdf
4 Replies

10. Shell Programming and Scripting

How can I extract digits at the end of a string in UNIX shell scripting?

How can I extract digits at the end of a string in UNIX shell scripting or perl? cat file.txt abc_d123_4567.txt A246_B789.txt B123cc099.txt a123_B234-012.txt a13.txt What can I do here? Many thanks. cat file.txt | sed "s/.txt$//" | ........ 4567 789 099 012 13 (11 Replies)
Discussion started by: mingch
11 Replies
SEIVOT(1)						      General Commands Manual							 SEIVOT(1)

NAME
seivot - benchmark backup application (obnam) SYNOPSIS
seivot [--benchmark-fsck] [--config=FILE] [--description=TEXT] [--drop-caches] [--dump-config] [--dump-memory-profile=METHOD] [--dump-setting-names] [--encrypt-with=KEYID] [--file-size=SIZE] [--generate-manpage=TEMPLATE] [--generations=COUNT] [-h] [--help] [--incremental-data=SIZE] [--initial-data=SIZE] [--larch-branch=LARCH-BRANCH] [--list-config-files] [--log=FILE] [--log-keep=N] [--log-level=LEVEL] [--log-max=SIZE] [--log-mode=MODE] [--no-default-configs] [--obnam-branch=OBNAM-BRANCH] [--obnam-config=FILE] [--obnam-profile=NAMEPATTERN] [--output=FILE] [--profile-name=PROFILE-NAME] [--program=PROGRAM] [--sftp-delay=SFTP-DELAY] [--use-existing=DIR] [--use-sftp-repository] [--use-sftp-root] [--verify] [--version] [FILE]... DESCRIPTION
seivot benchmarks a backup application. It has been written primarily for obnam(1), but could be extended for other backup applications. seivot generates some live data using genbackupdata(1), and then runs the backup application. It then generates some more live data, and runs a second backup generation, etc. It stores the measurements in an output file. See seivots-summary(1) for a tool to show data from such files in a tabular fashion. (seivot does not itself show the tabular data, because one is rarely interested in the output from just one run, and instead wants to contrast it with other runs). OPTIONS
--benchmark-fsck benchmark fsck? --config=FILE add FILE to config files --description=TEXT free-form description of this backup run --drop-caches clear Linux kernel cache before running commands (will ask for sudo pasword --dump-config write out the entire current configuration --dump-memory-profile=METHOD make memory profiling dumps using METHOD, which is one of: none, simple, meliae, or heapy (default: simple) --dump-setting-names write out all names of settings and quit --encrypt-with=KEYID encrypt backups with KEYID --file-size=SIZE size of files to create --generate-manpage=TEMPLATE fill in manual page TEMPLATE --generations=COUNT total number of generations to measure (5) -h, --help show this help message and exit --incremental-data=SIZE add SIZE live data for additional generations (1024) --initial-data=SIZE size of initial live data (1024) --larch-branch=LARCH-BRANCH bzr branch from which to use larch (default is installed larch) --list-config-files list all possible config files --log=FILE write log entries to FILE (default is to not write log files at all); use "syslog" to log to system log, or "none" to disable log- ging --log-keep=N keep last N logs (10) --log-level=LEVEL log at LEVEL, one of debug, info, warning, error, critical, fatal (default: debug) --log-max=SIZE rotate logs larger than SIZE, zero for never (default: 0) --log-mode=MODE set permissions of new log files to MODE (octal; default 0600) --no-default-configs clear list of configuration files to read --obnam-branch=OBNAM-BRANCH bzr branch from which to run obnam (default is installed obnam) --obnam-config=FILE use FILE as an Obnam configuration file --obnam-profile=NAMEPATTERN store Python profiling output in files named after NAMEPATTERN (no profiling, unless set); %(foo)s in pattern gets filled in, where foo is op (for backup/restore/etc), gen, or order (cumulative/time) --output=FILE write output to FILE, instead of standard output --profile-name=PROFILE-NAME name of backup use-case profile name (for documentation purposes only) --program=PROGRAM program to benchmark (obnam) --sftp-delay=SFTP-DELAY add an artificial delay (in milliseconds) to all SFTP transfers --use-existing=DIR use exiting DIR for initial generation --use-sftp-repository access backup repository over the network via sftp --use-sftp-root access backup repository over the network via sftp --verify verify restored data --version show program's version number and exit EXAMPLE
To run a simple benchmark: seivot --initial-data=10G --incremental-data=1G SEE ALSO
seivots-summary(1), obnam(1). SEIVOT(1)
All times are GMT -4. The time now is 11:26 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy