![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !! |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| SED replace string by occurrence | uttamhoode | Shell Programming and Scripting | 4 | 03-05-2008 02:04 AM |
| last occurrence of a string across multiple files | porphyrin | UNIX for Dummies Questions & Answers | 2 | 12-24-2007 06:39 AM |
| appending string to text file based on search string | malaymaru | Shell Programming and Scripting | 1 | 06-09-2006 05:53 AM |
| Search and replace to first occurrence of string | gilmord | UNIX for Dummies Questions & Answers | 7 | 05-03-2006 04:43 AM |
| copying or concatinating string from 1st bit, leaving 0th bit | jazz | High Level Programming | 2 | 11-10-2005 09:38 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#8
|
|||
|
|||
|
Hi Thomas,
I want to remove duplicates which are specified explicitely rather than all duplicates. Thanks Thomas. Hi Anbu, I am getting the same error message. Can you take up my example and change the script accordingly. Thanks in advance. gops |
| Forum Sponsor | ||
|
|
|
#9
|
|||
|
|||
|
Code:
#!/bin/ksh
awk -v check_val="$1" '{
if( $0==check_val) { key[$0]++ }
if(key[$0] < 2 ) print $0
}' inputfile > outputfile
|
|
#10
|
|||
|
|||
|
Hi Anbu,
I was off for few days and hence the delay in replying. I tried your stuff but I am getting this error awk -v check_val="$1" '{ if( $0==check_val) { key[$0]++ } if(key[$0] < 2 ) print $0 }' inputfile > outputfile awk: syntax error near line 1 awk: bailing out near line 1 I created a script test and fired it like ksh test.ksh cattle I am using korn shell. Do i need to make some changes for that ? Thanks in advance. cheers, gops |
|
#11
|
|||
|
|||
|
Hi Guys,
It is working fine when i supstitute nawk with awk command. Anbu, thanks a lot. When i pass the exact string that line gets deleted in the outputfile. But i want to pass a part of the string and i want whole string to be deleted. for eg inputfile cattle battle cat mattle cattle my outputfile should be cattle battle mattle here i want to check for cat%. I dont know how to do that using nawk. Please help me out on this. Best Regards, gops |
|
#12
|
|||
|
|||
|
Quote:
awk '/$1/' inputfile>temp awk '{for ( $0 in `cat temp` ) key[$0]++ if(key[$0] < 2 ) print $0 }' inputfile > outputfile i didnt try this out, but i hope the logic is clear. i searched for the pattern specified by $1 and stored all the matches in temp. then instead of a direct comparison with 'if', i matched $0 with all the values in temp using a for loop. rest of the logic is the same. pardon any syntactical errors. |
|
#13
|
|||
|
|||
|
Hi npolayan,
I can able to create the temp file with appropriate values to look at but when i executed the awk statement awk '{ for ($0 in `cat temp`) key[$0]++ if(key[$0] < 2 ) print $0 }' inputfile > outputfile I am getting error messages illegal statement at source line 1 illegal statement at source line 4 Let me know if you have the answer. Thanks in advance. cheers, gops |
|||
| Google The UNIX and Linux Forums |