Get specific information from output


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Get specific information from output
# 1  
Old 01-18-2020
Get specific information from output

Hello community,
I'm going crazy to analize an output via shell script and then get some information from it, here is the output:

Code:
Slot 2 - MMU2 H, RAU2 X 15/A01
 XPIC                              Enabled
 Autorestore                       Unknown
Slot 3 - MMU2 H, RAU2 X 15/A01
 XPIC                              Enabled
 Autorestore                       Unknown
Slot 4 - MMU2 H, RAU2 X 26/A05
 XPIC                              Disabled
Slot 5 - MMU2 H, RAU2 X 26/A05
 XPIC                              Enabled
 Autorestore                       Unknown
Slot 6 - MMU2 H, RAU2 X 15/A01HP
 XPIC                              Disabled

Well, when XPIC is enabled and Autorestore in NOT Enabled (in the example is Unknown but could be something else like "Disabled"), I have to take the related slot number to create a specified command (to execute it later).

So in the above example, slot 2:
- XPIC is enabled and Autorestore is Uknown
- Create outut command like: rl 2 xpicrecovery 5 5 (where 2 is the slot number)

Same for slot 3
- XPIC is enabled and Autorestore is Uknown
- Create outut command like: rl 3 xpicrecovery 5 5 (where 3 is the slot number)

Slot 4:
XPIC is disable (no autorestore variable present)
Just skip.....

So in the end I should have an output like:
Code:
rl 2 xpicrecovery 5 5
rl 3 xpicrecovery 5 5
rl 5 xpicrecovery 5 5

Could someone help please? I'm stuck at this point! Smilie

Lucas
# 2  
Old 01-18-2020
Please, do post your attempts and efforts, including operating system and shell details in future.

We would like to see how far you got before helping.

See if this helps you get started...

Code:
awk '/Slot/ { slot=$2 } ; /XPIC/ { status=$2 } ; $1 == "Autorestore" && $2 != "Enabled" { print "rl", slot, "xpicrecovery 5 5"  }' inputfile

Hope that helps
Regards
Peasant.
This User Gave Thanks to Peasant For This Post:
# 3  
Old 01-18-2020
Thank you very much Peasant, it's working fine and this is the good start point for the rest of my code!

Thank you
Lucas
# 4  
Old 01-18-2020
Although Peasant's proposal delivers the desired output, it doesn't check the XPIC status but, if disabled, relies upon the missing Autorestore entry and silently discards the XPIC status.


Try (with a disabled slot 3 XPIC)
Code:
awk '
/Slot/                  {slot = $2
                        }
/XPIC/                  {Xstatus = $2
                        }
Xstatus == "Enabled" &&
$1 == "Autorestore" &&
$2 != "Enabled"         { print "rl", slot, "xpicrecovery 5 5"
                        }
' file
rl 2 xpicrecovery 5 5
rl 5 xpicrecovery 5 5

# 5  
Old 01-18-2020
Guys, please help!

With the following situation (Slot 2 both enabled)
Code:
Slot 2 - MMU2 H, RAU2 X 15/A01
 XPIC                              Enabled
 Autorestore                       Enabled
Slot 3 - MMU2 H, RAU2 X 15/A01
 XPIC                              Enabled
 Autorestore                       Unknown
Slot 4 - MMU2 H, RAU2 X 26/A05
 XPIC                              Enabled
 Autorestore                       Unknown
Slot 5 - MMU2 H, RAU2 X 26/A05
 XPIC                              Enabled
 Autorestore                       Unknown
Slot 6 - MMU2 H, RAU2 X 15/A01HP
 XPIC                              Disabled

I Got the following using the Peasant awk
Code:
rl 2 xpicrecovery 5 5
rl 3 xpicrecovery 5 5
rl 4 xpicrecovery 5 5
rl 5 xpicrecovery 5 5

That's no good, since slot 2 is already enabled ( Autorestore Enabled)

I have to create command only whenr XPIC is enabled and Autorestore is NOT enabled Smilie

Rudic, with your awk, I got no output...
Please help, I have to deliver my script asap Smilie

Lucas
# 6  
Old 01-18-2020
"asap" is a term highly deprecated in these fora...



With either script, I get

Code:
rl 3 xpicrecovery 5 5
rl 4 xpicrecovery 5 5
rl 5 xpicrecovery 5 5


We need more to start analysing. Is it possible your input has quirks? Show your OS and awk versions, commands / scripts, input data (maybe a hexdump of a few lines?), and error messages. Print $1 and $2 of your input data.
This User Gave Thanks to RudiC For This Post:
# 7  
Old 01-18-2020
Hi Lord Spectre

Please, review how you have executed the code from post #4. Based on your input it should have given you the desired output instead of no output as you mentioned.

Here's another iteration
Code:
awk '
$1 == "Slot"  { slot = $2     # I am in record that starts the block
                next }        # move on to next line
$1 == "XPIC"  { Xstatus = $2  # I am in record that contains XPIC
                next }        # nothing else, move on to read next line
$1 == "Autorestore" &&        # I am in record that ends block
   Xstatus == "Enabled" &&    # do I need to print?
   $2 != "Enabled" { print "rl", slot, "xpicrecovery 5 5" } # yes, I do print
' example.file

This User Gave Thanks to Aia For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Missing information in output file

Gents, Using the following code i am able to output the information i need, but some of the strings are not complete due to the separator : used.. Kindly can u help me to get all string after the first : Example in the output file column 16 i should get 17/11/25 03:43:51:732000 but i... (8 Replies)
Discussion started by: jiam912
8 Replies

2. Shell Programming and Scripting

Extract Specific Information from a particular field

Hi, I am trying to extract a specific information from a file which contains more than 200 million records. Attached the input file for your reference. My file contains information below ... (4 Replies)
Discussion started by: rramkrishnas
4 Replies

3. Shell Programming and Scripting

How to extract specific information?

hi, i have a file A like this: ******************* No 2823 ******************** contig15205- G383C4U02H4G80+ is in contig15205- G383C4U02HGLXM- is in contig15205- G383C4U01C3HIZ+ is in contig15205- ... (3 Replies)
Discussion started by: the_simpsons
3 Replies

4. Shell Programming and Scripting

Pull out information from output logs

My scenario is as follows. 1. I have a reference file with the IP addresses and names $ cat ref.list 10.11.xxx.xxx AA 10.12.xxx.xxx BB 10.13.xxx.xxx CC 10.14.xxx.xxx DD 2. A script runs and gets me one of the IP addresses and puts it in a separate file, for e.g... (2 Replies)
Discussion started by: Nagesh_1985
2 Replies

5. Shell Programming and Scripting

[Solved] How can I pull specific information from PS?

I need to grab information from the output of the ps command. For each line of ps output that contains _progres -b I need to get the word that follows -p. The "-p" can be anywhere after "_progres -b". Using grep to select the correct lines is no problem (e.g. ps -ef|grep "_progres \-b|grep -v... (3 Replies)
Discussion started by: Papa Lee
3 Replies

6. Shell Programming and Scripting

get specific information from text file or command output

Hello, I would need some help, :wall: on a linux script, I am not sure how can I separate some text file, Text file contains something similar to this: share "userhome_e" "/fs1_100g/FILE58/userhome" umask=022 maxusr=4294967295 netbios=FILE58 share "bu share"... (3 Replies)
Discussion started by: nakaedu
3 Replies

7. UNIX and Linux Applications

Reflection Macro: Use Current Date Information in specific field of report

Hi Everyone, New to the forum, and have my first question. I have the following Macro currently being used within Telnet to run a report for the date being entered. However, now I need the Macro to input the day after today to the the day after today. Example: If today is May 9, 2012 - the... (0 Replies)
Discussion started by: CipherEffect
0 Replies

8. Shell Programming and Scripting

Using txr to extract information from output

am using txr command (txr 1097) on a process that generates the following output. Im trying to extract the 13th field from the highlighted string. it is delimited by '?'. The 13th field corresponds to the '0' (in bold). can you let me know how I can extract the 13 th field please? ... (1 Reply)
Discussion started by: pazman
1 Replies

9. UNIX for Advanced & Expert Users

using txr to extract information from output

am using txr command (txr 1097) on a process that generates the following output. Im trying to extract the 13th field from the highlighted string. it is delimited by '?'. The 13th field corresponds to the '0' (in bold). can you let me know how I can extract the 13 th field please? ... (1 Reply)
Discussion started by: pazman
1 Replies

10. UNIX for Advanced & Expert Users

How to perform Grep on many Gzip files, Searching for Specific information

Hello, I am wondering if you can assist with my question and ask kindly for this. I have a number of files that are listed as file1.gz through file100.gz. I am trying to perform a grep on the files and find a specific date that only resides within within one of the files. There are... (3 Replies)
Discussion started by: legharb
3 Replies
Login or Register to Ask a Question