I just tried your awk script but i get an error @ line 3 i.e v=$0. As i'm pretty new to awk i could not make out what could be the problem. And also one more doubt what i have is:
Ravinder wanted to delete the line before the ***no hit*** also but with the logic what i understood the below script will print the line A3 and then check for ***no hit*** condition rite..?
bash-3.00# awk '
> NF
> {
> v=$0
> getline
> if ($0!="***no hit***")
> print v RS $0 RS " "
> '
awk: syntax error near line 3
awk: bailing out near line 3
As Yoda said, you need to use nawk or /usr/xpg4/bin/awk instead of just awk if you are using a Solaris or SunOS system.
But, in addition to that, you need to copy one of Yoda's scripts exactly. Putting a newline between the NF and the { completely changes the behavior of his scripts. And, you dropped a } at the end of the script that is crucial.
Note also that if you don't specify a file to be read at the end of the script, it will wait for you to type in data instead of reading it from a file.
These 3 Users Gave Thanks to Don Cragun For This Post:
Thanks yoda & Don. I used /usr/xpg4/bin/awk and it worked perfectly. Sorry for missing out few pieces in the earlier script. I did not know taking that { to next line will give a different output.
If possible could you please tell what happens if i put { that in next line.
Thanks yoda & Don. I used /usr/xpg4/bin/awk and it worked perfectly. Sorry for missing out few pieces in the earlier script. I did not know taking that { to next line will give a different output.
If possible could you please tell what happens if i put { that in next line.
Thanks
First, note that unless you redirect the output of the script to overwrite some file that you want to keep, making the change to the script and looking at what happens won't hurt anything. Don't be afraid to experiment!
Second, without trying it, let me guess at what the script would do:
So, just by reading the code (without trying to run it), I would guess that:
Some lines from file will be printed twice.
If an even numbered input line in file contains *** no hit ***, it and the line before it will be printed instead of being skipped.
I believe that is the difference that an extra newline would have on this simple script.
Some extra characters don't matter to awk (but make a script easier to read and maintain).
But, a single missing character or an extra character in the wrong spot can completely destroy the intended behavior of a program.
This User Gave Thanks to Don Cragun For This Post:
Hello,
I'm trying to figure out how to use sed or awk to delete single lines in a file. By single, I mean lines that are not touching any other lines (just one line with white space above and below).
Example:
one
two
three
four
five
six
seven
eight
I want it to look like: (6 Replies)
hey guys,
I tried searching but most 'search and replace' questions are related to one liners.
Say I have a file to be replaced that has the following:
$ cat testing.txt
TESTING
AAA
BBB
CCC
DDD
EEE
FFF
GGG
HHH
ENDTESTING
This is the input file: (3 Replies)
Hi All,
I have a very huge file (4GB) which has duplicate lines. I want to delete duplicate lines leaving unique lines. Sort, uniq, awk '!x++' are not working as its running out of buffer space.
I dont know if this works : I want to read each line of the File in a For Loop, and want to... (16 Replies)
Hi,
I have to search a word in a text file and then I have to delete lines above from the word searched . For eg suppose the file is like this:
Records
P1
10,23423432
,77:1
,234:2
P2
10,9089004
,77:1
,234:2
,87:123
,9898:2
P3
456456
P1
:123,456456546
P2
abc:324234 (2 Replies)
Hello,
I have a group of text files with many lines in each file.
I need to delete all the lines in each and only leave 2 lines in each file. (3 Replies)
Let's say we have a file containing:
alllllsadfsdasdf
qwdDDDaassss
ccxxcxc#2222
dssSSSSddDDDD
D1Sqn2NYOHgTI
Hello
Alex
ssS@3
Ok, and let's say we want to delete all words from D1Sqn2NYOHgTI and back, this means
to delete the words (and the lines of them) :
alllllsadfsdasdf... (2 Replies)
Input:
a
b
b
c
d
d
I need:
a
c
I know how to get this (the lines that have duplicates) :
b
d
sort file | uniq -d
But i need opossite of this. I have searched the forum and other places as well, but have found solution for everything except this variant of the problem. (3 Replies)
Hi all coders,
I need a help to process some data.
I have this file,
3 09/21/08 03:32:07 started undef mino Oracle nmx004.wwdc.numonyx.co
m
Message Text : The Oracle session with the PID 1103 has a CPU time
consuming of 999.00... (3 Replies)
Hi,
Please suggest how to write a shell script which delets all the lines containing the word unix in the files supplied as argument in the shell. (4 Replies)