Some of these records have cmmac attribute duplicity, so I don't want to process them further. I have list of duplicate records, so I'm going through source file and deleting cmmac: MATCH and dn: above. I've tried to utilize solution I've found on these forums
---------- Post updated 13-01-12 at 05:52 AM ---------- Previous update was 12-01-12 at 01:10 PM ----------
Somehow I've found what to do:
Grep doesn't like putting the variable from "for" cycle, so I've wrapped it into echo call in subshell. I've no idea why it works this way.
Code:
for fil in $( grep cmmac cmmac.export.tmp | sort | uniq -c | grep -v " 1 " | awk -F' ' '{print $3}' );
do
#echo $fil
#Following line deletes line with pattern fil from file tmp2 and stores in txt
grep -v "$(grep -B 1 " `echo $fil`" cmmac.export.tmp2)" cmmac.export.tmp2 > cmmac.export.txt
cp cmmac.export.txt cmmac.export.tmp2
done
Last edited by tomas.polak; 01-13-2012 at 06:55 AM..
Reason: code tags, check PM
$ awk '{y=x;x=$0}$0~/cmmac/&&!A[$2]++{print "This record will be processed :" RS y RS $0}' tst
This record will be processed :
dn: deviceId=0a92746a54tbmd34b05758900131136a506,ou=devices,ou=customer,ou=nl,o=upc
cmmac: 00:13:11:36:a5:06
This record will be processed :
dn: deviceId=0a92746a62pbms4662299650015961cfa23,ou=devices,ou=customer,ou=nl,o=upc
cmmac: 00:15:96:1c:fa:23
This record will be processed :
dn: deviceId=0a92746a64jbmr22a2083670015965883bc,ou=devices,ou=customer,ou=nl,o=upc
cmmac: 00:15:96:58:83:bc
This record will be processed :
dn: deviceId=0a92746a62sbms4662373470015961d6d7b,ou=devices,ou=customer,ou=nl,o=upc
cmmac: 00:15:96:1d:6d:7b
---------- Post updated at 12:33 PM ---------- Previous update was at 12:22 PM ----------
if you are just interested in extracting the cmmac with unicity, you can go with :
So I need to search against MAC addresses in duplicity list, find it in list of DN and MAC and delete also the previous line with DN. My problem was construction of special grep command which has in "for .. in do .. done" cycle a fundamental flaw - it doesn't like just variable like %f, you need to utilize subshell - `echo %f ` to ensure that in expands into desired form. I've found a working solution
Code:
cp cmmac.export.tmp cmmac.export.tmp2
for fil in $( grep cmmac cmmac.export.tmp | sort | uniq -c | grep -v " 1 " | awk -F' ' '{print $3}' ); do
#echo $fil
#Following line deletes line with pattern fil and preceding line from file tmp2 and stores in txt
grep -v "$(grep -B 1 " `echo $fil`" cmmac.export.tmp2)" cmmac.export.tmp2 > cmmac.export.txt
cp cmmac.export.txt cmmac.export.tmp2
done
Hi All,
I need to print the characters in the previous line just before the regular expression match
Please have a look at the input file as attached
I need to match the regular expression ^ with the character of the previous like and also the pin numbers
and the output file should be like... (6 Replies)
Team,
I am writing a shell script to perform few health checks of the system, where I need to delete the previous line in the text file after pattern match using sed (or) awk.
Could you please help me out on this?
For example,
<td>
<td style=color:green align=center>
</td>
</tr>... (6 Replies)
Hi ,
i have a file with data as below.This is same file. But actual file contains to many rows.
i want to search for a string "Field 039 00" and delete that line and previous 3 lines in that file.. Can some body suggested me how can i do using either sed or awk command ?
Field 004... (7 Replies)
Hi,
I have a file like this
a 1 2
b 2 2
c 2 3
d 4 5
f 5 6
output
a 1 2
c 2 3
d 4 5
f 5 6
Basically, I want to delete the whole line if $2 and $3 are the same. Thanks (5 Replies)
Hi,
How to delete the last line if is match the below string else no action...
String checking "END OF FILE. ROW COUNT: "
9f680174-cb87-4f71-887a-93b6f62fa5aa|20077337254|2
9f680174-cb87-4f71-887a-93b6f62fa5aa|20077337254|0
229f680174-cb87-4f71-887a-93b6f62fa5aa|20077337254|3
END OF... (2 Replies)
Hi,
Need some idea on file processing, I have file like below,
Processing al sources ...
...No value found :
CHECK.
Completed comparing all sources.
Comparing schedulers...
Processing al targets ...
...No value found :
From above I need to extract the line where "No value... (4 Replies)
hi,
i am parsing a file, in that searching for lines those contains "$threadNo.Received message:" , if that line contains the required fields write them into a separate file other wise ignore them.
i am using the following code,but it is printing all the lines , i dont want to rpint , please help... (3 Replies)
i have a file in following pattreen
A:
Size = 10
B:
Size = 0
C:
Size = 220
D:
Size = 0
i want to Display only Charecters which have which have Size = 0
The Out put Should be
B:
D:
Can Some one Help (7 Replies)