Grep 3 lines from a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Grep 3 lines from a file
# 1  
Old 03-22-2013
Grep 3 lines from a file

I have file, test.txt

Code:
UtranCellId                          MDN407WI1
administrativeState                  1 (UNLOCKED)
aseDlAdm                             500
aseUlAdm                             800
cellReserved                         1 (NOT_RESERVED)
dlCodeAdm                            95
hoType                               0 (IFHO_PREFERRED)
hsIflsMarginUsers                    0
hsIflsThreshUsers                    0
iflsMode                             2 (RAB_EST_AND_UPSWITCH_ATT)
locationAreaRef                      LocationArea=5071
maximumTransmissionPower             430
pathlossThreshold                    170
primaryCpichPower                    300
qQualMin                             -18
qRxLevMin                            -115
usedFreqThresh2dEcno                 -14
usedFreqThresh2dRscp                 -105
UtranCellId                          MDN094W1
administrativeState                  2 (LOCKED)
aseDlAdm                             400
aseUlAdm                             300
cellReserved                         1 (NOT_RESERVED)
dlCodeAdm                            95
hoType                               1 (GSM_PREFERRED)
hsIflsMarginUsers                    10
hsIflsThreshUsers                    10
iflsMode                             2 (RAB_EST_AND_UPSWITCH_ATT)
locationAreaRef                      LocationArea=5071
maximumTransmissionPower             449
pathlossThreshold                    170
primaryCpichPower                    330
qQualMin                             -18
qRxLevMin                            -115
usedFreqThresh2dEcno                 -12
usedFreqThresh2dRscp                 -105

I want to have the output like

Code:
UtranCellId   administrativeState   aseDlAdm   aseUlAdm       qQualMin
MDN407WI1   1   500   800 -18
      MDN094W1   2   400   300   -18

pls help

Last edited by radoulov; 03-22-2013 at 11:33 AM..
# 2  
Old 03-22-2013
I don't understand. You say you want 3 lines from a file, but the 1st line of output you show comes from the first column of five (non-adjacent) input lines, and the 2nd and 3rd lines seem to come from the second column of five other non-adjacent lines.

What criteria are you using to select what you want to appear in the output?
# 3  
Old 03-22-2013
file1.txt

Code:
UtranCellId                          MDN407WI1
administrativeState                  1 (UNLOCKED)
aseDlAdm                             500
aseUlAdm                             800
cellReserved                         1 (NOT_RESERVED)
dlCodeAdm                            95
hoType                               0 (IFHO_PREFERRED)
hsIflsMarginUsers                    0
hsIflsThreshUsers                    0
iflsMode                             2 (RAB_EST_AND_UPSWITCH_ATT)
locationAreaRef                      LocationArea=5071
maximumTransmissionPower             430
pathlossThreshold                    170
primaryCpichPower                    300
qQualMin                             -18
qRxLevMin                            -115
usedFreqThresh2dEcno                 -14
usedFreqThresh2dRscp                 -105
UtranCellId                          MDN094W1
administrativeState                  2 (LOCKED)
aseDlAdm                             400
aseUlAdm                             300
cellReserved                         1 (NOT_RESERVED)
dlCodeAdm                            95
hoType                               1 (GSM_PREFERRED)
hsIflsMarginUsers                    10
hsIflsThreshUsers                    10
iflsMode                             2 (RAB_EST_AND_UPSWITCH_ATT)
locationAreaRef                      LocationArea=5071
maximumTransmissionPower             449
pathlossThreshold                    170
primaryCpichPower                    330
qQualMin                             -18
qRxLevMin                            -115
usedFreqThresh2dEcno                 -12
usedFreqThresh2dRscp                 -105

---------- Post updated at 01:38 AM ---------- Previous update was at 01:37 AM ----------

file2.txt

Code:
UtranCellId MDN407WI1
administrativeState 1 (UNLOCKED)
aseDlAdm 500
aseUlAdm 800
qQualMin -18
UtranCellId MDN094W1
administrativeState 2 (LOCKED)
aseDlAdm 400
aseUlAdm 300
qQualMin -18

---------- Post updated at 01:39 AM ---------- Previous update was at 01:38 AM ----------

file3.txt
Code:
UtranCellId   administrativeState   aseDlAdm   aseUlAdm       qQualMin
MDN407WI1   1   500   800 -18
MDN094W1   2   400   300   -18


Last edited by radoulov; 03-22-2013 at 11:34 AM..
# 4  
Old 03-22-2013
Please use code tags as required by forum rules!

I have to second Don Cragun, as it is a mystery to me what be your desired output and what be the logics to achieve it. Please explain in plain English what comes from where and goes to where, so we can start helping you.
# 5  
Old 03-22-2013
Is this what you are looking for?

Code:
nawk '/UtranCellId/ || /administrativeState/ || /aseDlAdm/ || /aseUlAdm/ || /qQualMin/ {a[++k]=$1;b[++i]=$2}
END{
for (j=1;j<=5;j++)
{printf ("%s \t",a[j])
}
printf "\n"
for (j=1;j<=i;j++){
printf ("%s \t\t",b[j])
if ( j % 5 == 0)
{
printf "\n"
}
}
}'

# 6  
Old 03-23-2013
i tried this one

Code:
awk -F"" ' BEGIN {
print "UtranCellId administrativeState aseDIAdm aseUIAdm qQualMin";
} /(UtranCellId|administrativeState|aseDIAdm|aseUIAdm|qQualMin)/ { si=$NF;getline;pn=$NF;getline;ld=$NF; print si, pn, ld; } ' file 1.txt

but the output is

Code:
UtranCellId administrativeState aseDIAdm aseUIAdm qQualMin
UtranCellId                          MDN407WI1 administrativeState                  1 (UNLOCKED) aseDlAdm                             500
qQualMin                             -18 qRxLevMin                            -115 usedFreqThresh2dEcno                 -14
UtranCellId                          MDN094W1 administrativeState                  2 (LOCKED) aseDlAdm                             400
qQualMin                             -18 qRxLevMin                            -115 usedFreqThresh2dEcno

i'm looking for

Code:
UtranCellId   administrativeState   aseDlAdm   aseUlAdm       qQualMin MDN407WI1   1   500   800 -18 MDN094W1   2   400   300   -18

help...
Sorry, this is my first post in this forum..thanks for guiding

---------- Post updated at 11:14 AM ---------- Previous update was at 11:13 AM ----------

i mean the structure like file3.txt shown above

---------- Post updated at 12:58 PM ---------- Previous update was at 11:14 AM ----------

so many thanks Mr Aksijain,..so helpful

Last edited by Scrutinizer; 03-23-2013 at 02:28 PM.. Reason: code tags
# 7  
Old 03-24-2013
Although you didn't bother to improve your specification, I think I picked up on what you want.
Instead of splitting the header line into an array, and then test all the $1s against this array in a loop for each input line, I dreamed up this one replacing the header text with its value for every instance of the datasets:
Code:
awk     'NR==1          {Ln = "UtranCellId administrativeState aseDlAdm aseUlAdm qQualMin"  # header, used for data line format
                         print Ln                                                           # print header
                         tmp = Ln}                                                          # prepare data line
         match (Ln, $1) {if (RSTART == 1 && tmp != Ln) {print tmp; tmp = Ln}                # found new record - print old one, prepare new data line
                         sub ($1, sprintf ("%*s", RLENGTH, $2), tmp)                        # put data into data line with correct field lenght
                        }
         END            {print tmp                                                          # print last record
                        }
        ' file
UtranCellId administrativeState aseDlAdm aseUlAdm qQualMin
  MDN407WI1                   1      500      800      -18
   MDN094W1                   2      400      300      -18

If you need the entire state string incl. (LOCKED / UNLOCKED), make " +" the field separator, yielding
Code:
UtranCellId administrativeState aseDlAdm aseUlAdm qQualMin
  MDN407WI1        1 (UNLOCKED)      500      800      -18
   MDN094W1          2 (LOCKED)      400      300      -18


Last edited by RudiC; 03-24-2013 at 06:09 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grep the lines in one file that are also in another

Hi all, I have two files. File A looks like this: abkhasian com|hum accent com|com|com|com|sta acceptation act|com|sta adventures com|hum adversity com|hum|hum and File B looks like this: adventure adventures adversary Adverse adversity I want to print those lines in File A... (9 Replies)
Discussion started by: owwow14
9 Replies

2. Shell Programming and Scripting

Grep into a file + show following lines

Hi guys, This is probably very easy but I've no idea how to pull this out. Basically, I need to find errors into a very large logfile. When you grep the ID, the output is like this: +- Type: 799911 Code: Ret: 22728954 Mand: X Def: Des: UserDes: SeqNo: 2 +- Type: 799911 Code: Ret:... (5 Replies)
Discussion started by: Arkadia
5 Replies

3. UNIX for Dummies Questions & Answers

grep lines in a file that have only one field

Hello. How does one grep lines in a file that have only one field? AAA BBB CCC DDD AAA CCC Is is possible to grep "DDD" becuase it has only one field? Thanks. ---------- Post updated at 08:03 PM ---------- Previous update was at 07:25 PM ---------- I found it, thank you! awk 'NF... (2 Replies)
Discussion started by: jimmyf
2 Replies

4. UNIX for Dummies Questions & Answers

grep two lines from a file

Sample File abc xyz def abc ggh abc xyz I just created a sample file above to show what I need. I need to grep two lines. e.g abc and xyz(only if they are one after the other) so output would be abc xyz abc xyz (note abc followed by ggh line would not come out in the output). I... (9 Replies)
Discussion started by: ran123
9 Replies

5. Shell Programming and Scripting

Extracting specific lines of data from a file and related lines of data based on a grep value range?

Hi, I have one file, say file 1, that has data like below where 19900107 is the date, 19900107 12 144 129 0.7380047 19900108 12 168 129 0.3149017 19900109 12 192 129 3.2766666E-02 ... (3 Replies)
Discussion started by: Wynner
3 Replies

6. Shell Programming and Scripting

Grep between block of lines in a file

Hi Friends, I have a file which has many of the statements like below ******** MAKING > noun1 < cg_all statements statements statements ********* MAKING > noun2 < cg_all statements statements statements ********* MAKING > noun3 < all statements statements statements I would... (3 Replies)
Discussion started by: ganga.dharan
3 Replies

7. Shell Programming and Scripting

grep two lines in a file

Hi Everyone, I have 1.txt 1 6-6 3-3 word y f 6-6 word 5-5 4 5-5 word The output should be: 3-3 (8 Replies)
Discussion started by: jimmy_y
8 Replies

8. Shell Programming and Scripting

grep and display lines from a file

I have to grep on a few words in a file and then display the line containing those words and the line above it. For ex - File1.txt contains... abc xyz abc This is a test Test successful abc xyz abc Just a test Test successful I find the words 'Test successful' in the file... (6 Replies)
Discussion started by: user7617
6 Replies

9. Shell Programming and Scripting

How to grep all lines from a file NOT having a certain character

Hi, I have for instance following INPUT file from which I want to grep ALL lines NOT containing the literal '{' into an OUTPUT file: ... RUNJOB=1,AxBxALLxGEx RUNJOB=0,AxBxDELxGExPRAEMxABLxZGS RUNJOB=0,AxBxDELxGExPRAEMxHARM RUNJOB=0,{UNIX: echo '§ASG§;%ASG_START}... (8 Replies)
Discussion started by: ABE2202
8 Replies

10. Shell Programming and Scripting

Grep multiple lines from a file

Hi, I would like to ask if there is any method to grep a chuck of lines based on the latest file in a directory. E.g Latest file in the directory: Line 1: 532243 Line 2: 123456 Line 3: 334566 Line 4: 44567545 I wanted to grep all the line after line 2 i.e. Line 3 and line 4 and... (5 Replies)
Discussion started by: dwgi32
5 Replies
Login or Register to Ask a Question