Need help in grep


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Need help in grep
# 1  
Old 04-18-2012
Need help in grep

hi all,

I would like to grep without duplication, what should I do,

say

I have file abc.txt

contains
Code:
n xyz jik
n xyz jik

I have another file def.txt

what command I should use in script to copy n xyz jik once from abc.txt to def.txt

right now I am using

Code:
grep -i "xyz" $abc >>$def

but it causes duplication

and thus the output is
Code:
n xyz jik
n xyz jik

I want it to be

Code:
n xyz jik

looking forward for the reply

Thank you in advanceSmilie

Moderator's Comments:
Mod Comment Welcome to the UNIX and Linux Forums. Please use code tags. Video tutorial on how to use them

Last edited by Scrutinizer; 04-18-2012 at 03:05 AM..
# 2  
Old 04-18-2012
See if your requirement is print or store the unique value of 2nd Column (I assume delimiter is space) the below is your solution:

Code:
awk '!A[$2]++{print $0}' abc.txt > def.txt

# 3  
Old 04-18-2012
Quote:
Originally Posted by bal_nair
hi all,

I would like to grep without duplication, what should I do,

say

I have file abc.txt

contains
Code:
n xyz jik
n xyz jik

I have another file def.txt

what command I should use in script to copy n xyz jik once from abc.txt to def.txt

right now I am using

Code:
grep -i "xyz" $abc >>$def

but it causes duplication

and thus the output is
Code:
n xyz jik
n xyz jik

I want it to be

Code:
n xyz jik

looking forward for the reply

Thank you in advanceSmilie

Moderator's Comments:
Mod Comment Welcome to the UNIX and Linux Forums. Please use code tags. Video tutorial on how to use them
try this
Code:
# grep -i -m 1 "xyz" $abc >>$def

# 4  
Old 04-19-2012
using grep command

Hi,
You can make use of the below command line for your expected output.

Quote:
grep -i "xyz" $abc|sort |uniq >>$def
Sanjay.

---------- Post updated 04-19-12 at 12:32 PM ---------- Previous update was 04-18-12 at 04:21 PM ----------

Hi,

I am totally disagree for the query ygemici has posted.

Code:
grep -i -m 1 "xyz" $abc >>$def

above one is wrong one.

if the content of the file abc is like below.

Code:
n xyz jik
n xyz jik
a abc def
a abc def
c xyz nmp
n xyz nmp
k p r
k p r
k p r
t yy q
t yy q
t yy q
t yy q
t yy q

then it is only returning the first row of the xyz partened line. so it is totally worng .
now with a simple file content
Code:
t xyz rm
p xyz rm

and for above content if we will use Ygemici's command line .it gives
Code:
t xyz rm

which is aboutlutely worng.

thankx,
Sanjay.


Moderator's Comments:
Mod Comment Please use code tags, thanks!

Last edited by zaxxon; 04-19-2012 at 06:47 AM.. Reason: code tags, see PM
# 5  
Old 04-19-2012
@Sanjay, did you mean to phrase your post like that? A little more courteous choice of words would be appreciated, please read the rules, particularly rule #1 and #2, which you agreed to when you registered, if you have not already done so.

Thank You.

The UNIX and Linux Forums.
# 6  
Old 04-19-2012
Quote:
Originally Posted by sanjay.login
Hi,
You can make use of the below command line for your expected output.


Sanjay.

---------- Post updated 04-19-12 at 12:32 PM ---------- Previous update was 04-18-12 at 04:21 PM ----------

Hi,

I am totally disagree for the query ygemici has posted.

Code:
grep -i -m 1 "xyz" $abc >>$def

above one is wrong one.

if the content of the file abc is like below.

Code:
n xyz jik
n xyz jik
a abc def
a abc def
c xyz nmp
n xyz nmp
k p r
k p r
k p r
t yy q
t yy q
t yy q
t yy q
t yy q

then it is only returning the first row of the xyz partened line. so it is totally worng .
now with a simple file content
Code:
t xyz rm
p xyz rm

and for above content if we will use Ygemici's command line .it gives
Code:
t xyz rm

which is aboutlutely worng.

thankx,
Sanjay.


Moderator's Comments:
Mod Comment Please use code tags, thanks!
Smilie
i think,you dont understand some things..
but i really want to help if you want to more learn.

regards,
ygemici
# 7  
Old 04-19-2012
comments on Ygemici's post.

@Ygemici.

Every body in this world does not understand something (I am not an exception).
To err is human. But to accept the error is the real quality of a human.

Ok if you think your post is correct then ok I have nothing to say.

@forum

I am sorry to write like this but I could not stop when somebody wants to fight.

thanks & regards,
Sanjay.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Inconsistent `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l`

i have this line of code that looks for the same file if it is currently running and returns the count. `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l` basically it is assigned to a variable ISRUNNING=`ps -eaf -o args | grep -i sfs_pcard_load_file.ksh |... (6 Replies)
Discussion started by: wtolentino
6 Replies

2. UNIX for Dummies Questions & Answers

Piping grep into awk, read the next line using grep

Hi, I have a number of files containing the information below. """"" Fundallinfo 6.3950 14.9715 14.0482 """"" I would like to grep for Fundallinfo and use it to read the next line? I ideally would like to read the three numbers that follow in the next line and... (2 Replies)
Discussion started by: Paul Moghadam
2 Replies

3. UNIX for Dummies Questions & Answers

Bash - CLI - grep - Passing result to grep through pipe

Hello. I want to get all modules which are loaded and which name are exactly 2 characters long and not more than 2 characters and begin with "nv" lsmod | (e)grep '^nv???????????? I want to get all modules which are loaded and which name begin with "nv" and are 2 to 7 characters long ... (1 Reply)
Discussion started by: jcdole
1 Replies

4. Shell Programming and Scripting

AWK/GREP: grep only lines starting with integer

I have an input file 12.4 1.72849432773174e+01 -7.74784188610632e+01 12.5 9.59432114416327e-01 -7.87018212757537e+01 15.6 5.20139995965960e-01 -5.61612429666624e+01 29.3 3.76696387248366e+00 -7.42896194101892e+01 32.1 1.86899877018077e+01 -7.56508762501408e+01 35 6.98857157014640e+00... (2 Replies)
Discussion started by: chrisjorg
2 Replies

5. UNIX for Dummies Questions & Answers

Advanced grep'in... grep for data next to static element.

I have a directory I need to grep which consists of numbered sub directories. The sub directory names change daily. A file resides in this main directory that shows which sub directories are FULL backups or INCREMENTAL backups. My goal is to grep the directory for the word "full" and then... (2 Replies)
Discussion started by: SysAdm2
2 Replies

6. UNIX for Dummies Questions & Answers

Difference between grep, egrep & grep -i

Hi All, Please i need to know the difference between grep, egrep & grep -i when used to serach through a file. My platform is SunOS 5.9 & i'm using the korn shell. Regards, - divroro12 - (2 Replies)
Discussion started by: divroro12
2 Replies

7. Shell Programming and Scripting

grep for certain files using a file as input to grep and then move

Hi All, I need to grep few files which has words like the below in the file name , which i want to put it in a file and and grep for the files which contain these names and move it to a new directory , full file name -C20091210.1000-20091210.1100_SMGBSC3:1000... (2 Replies)
Discussion started by: anita07
2 Replies

8. UNIX for Dummies Questions & Answers

| help | unix | grep (GNU grep) 2.5.1 | advanced regex syntax

Hello, I'm working on unix with grep (GNU grep) 2.5.1. I'm going through some of the newer regex syntax using Regular Expression Reference - Advanced Syntax a guide. ls -aLl /bin | grep "\(x\)" Which works, just highlights 'x' where ever, when ever. I'm trying to to get (?:) to work but... (4 Replies)
Discussion started by: MykC
4 Replies

9. UNIX for Dummies Questions & Answers

| help | unix | grep - Can I use grep to return a string with exactly n matches?

Hello, I looking to use grep to return a string with exactly n matches. I'm building off this: ls -aLl /bin | grep '^.\{9\}x' | tr -s ' ' -rwxr-xr-x 1 root root 632816 Nov 25 2008 vi -rwxr-xr-x 1 root root 632816 Nov 25 2008 view -rwxr-xr-x 1 root root 16008 May 25 2008... (7 Replies)
Discussion started by: MykC
7 Replies

10. Shell Programming and Scripting

MEM=`ps v $PPID| grep -i db2 | grep -v grep| awk '{ if ( $7 ~ " " ) { print 0 } else

Hi Guys, I need to set the value of $7 to zero in case $7 is NULL. I've tried the below command but doesn't work. Any ideas. thanks guys. MEM=`ps v $PPID| grep -i db2 | grep -v grep| awk '{ if ( $7 ~ " " ) { print 0 } else { print $7}}' ` Harby. (4 Replies)
Discussion started by: hariza
4 Replies
Login or Register to Ask a Question