Sort command which ignores NULL


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sort command which ignores NULL
# 1  
Old 11-25-2009
Sort command which ignores NULL

Dear all,

I have a file [sample.txt] as below
Code:
100||kjhkjhkjhkjhk
200|TR|jvsjfhskfhskfhsdh
300|BH|kjlkjljlkj
600||dadsadasdada
||ffsdfsf
|YU|popopop
900||mlml

when I apply the below sort command, results obtained displayed below-
Code:
cut -f1,2 -d"|" test.txt|sort -u
100|
200|TR
300|BH
600|
900|
|
|YU

My desired output is somthing like below-
Code:
200|TR|jvsjfhskfhskfhsdh
300|BH|kjlkjljlkj

Is there any option within sort command which can ignore nulls in either key columns [1,2] and display unique values only for columns having some value

Note:
I have tried below command which worls fine for me, but would like to achive this using SORT command alone [without help of any awk command]
Code:
awk -F\| 'length($1) != 0 && length($2) != 0 {print $0 }' sample.txt|sort -u


Please ADVICE

Regards,
Suresh

Last edited by radoulov; 11-25-2009 at 04:57 PM.. Reason: Please use code tags!
# 2  
Old 11-25-2009
You can do something like that :
Code:
awk -F'|' '$1 && $2' sample.txt | sort -u

Jean-Pierre.
# 3  
Old 11-25-2009
Hi,
This is Pushpa. I have registered few minutes ago. I don't know how to post question to this Forum. Can you please help me for this.
Thank you,
Pushpa.
# 4  
Old 11-25-2009
I am not aware of options that do that. I think you will have to filter the output, e.g.
Code:
sort -nu sample.txt|egrep -v '^\||\|\|'

# 5  
Old 11-25-2009
Try:

Code:
sort -u -t "|" -k1,2 filename | grep -vE '^\||\|\|'

# 6  
Old 11-25-2009
sort won't eliminate any lines (except for duplicates). To sort correctly for the first two key fields, you need to do
Code:
sort -u -t "|" -k1,2

as dennis had. sort -n (or similar) won't do it if your first field has different lengths.
Filtering out the lines before sorting may be more efficient if you have many lines and most of them should be eliminated.
# 7  
Old 11-25-2009
Quote:
Originally Posted by binlib
sort -n (or similar) won't do it if your first field has different lengths.
I beg to differ, that is not how it works.


Code:
$> cat sample.txt
1000000000000||kjhkjhkjhkjhk
200|TR|jvsjfhskfhskfhsdh
3000000000|BH|kjlkjljlkj
600||dadsadasdada
||ffsdfsf
10000000|YU|popopop
90||mlml

Code:
$> sort -nu sample.txt|egrep -v '^\||\|\|'
200|TR|jvsjfhskfhskfhsdh
10000000|YU|popopop
3000000000|BH|kjlkjljlkj


Last edited by Scrutinizer; 11-25-2009 at 05:11 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to handle NULL value output from ISQL command?

I am using ISQL command in ksh script. Suppose if i get NULL value from the query which i run,how can i handle it? I am getting a NULL result set and the following error is coming. ############### output of isql command for getting the sum of JEs ################ ----------- NULL... (4 Replies)
Discussion started by: Sharma331
4 Replies

2. Shell Programming and Scripting

Invalid null command error

Hi, I have this script which gives me output as Invalid null command set recent_file=`grep '^-.*xlsx$' $FTP_LOG |\ sed -e 's/Jan/1/g' \ -e 's/Feb/2/g' \ -e 's/Mar/3/g' \ -e... (6 Replies)
Discussion started by: juzz4fun
6 Replies

3. Shell Programming and Scripting

How to use sort with null values?

Hello everyone I am doing a join command. Obviously, before I need two files sorted first. ( Both files have headers and have about 2 million lines each one ) The problem is, one of the files has null values in the key to sort (which is the first filed ). For example I have the original... (4 Replies)
Discussion started by: viktor1985
4 Replies

4. UNIX for Advanced & Expert Users

echo 2>/dev/null with a find command help

Why does this not work? echo 'find / -iname \'*katt*\' -size +500M 2>/dev/null' How does this work? I have 5 single quotes. I though you needed an even amount of single quotes. echo 'find / -iname \'*katt*\' -size +500M 2>/dev/null'' What is the trick to make it work with an alias? This... (4 Replies)
Discussion started by: cokedude
4 Replies

5. Red Hat

hostname command prints nothing a null value

Hi , On my box everything works fine. But whenever I run command It returns nothing as you see @(none) too. Its very strange issue I have never noticed on any other system yet. Any one have any idea about this. Thank you (2 Replies)
Discussion started by: pratapsingh
2 Replies

6. Shell Programming and Scripting

Is it Possible to sort a list of hexadecimal numbers using "sort" command?

Hello Everybody :) !!!. i have question in mind, is it possible to sort a list of hexadecimal numbers using "sort" command? (9 Replies)
Discussion started by: Kesavan
9 Replies

7. Shell Programming and Scripting

Newbie question: if[command not null]

hi, i have to put in my script a command that should tell me if the contents of two different paths are the same. I thought to write an "if" command who makes the diff of two files which contains the `ls` of the folders and go on with the script if is not null, but i'm afraid of the fact... (13 Replies)
Discussion started by: zangarules
13 Replies

8. Shell Programming and Scripting

invalid null command

#! /bin/csh set pattern = "" set deli = | foreach i ( `cat pattern`) set pattern = "$pattern$deli$i" end all i want to accomplish is create a string a|b|c, but instead I got an invalid null command error, thanks for your help (1 Reply)
Discussion started by: jdsignature88
1 Replies

9. Shell Programming and Scripting

How to Sort Floating Numbers Using the Sort Command?

Hi to all. I'm trying to sort this with the Unix command sort. user1:12345678:3.5:2.5:8:1:2:3 user2:12345679:4.5:3.5:8:1:3:2 user3:12345687:5.5:2.5:6:1:3:2 user4:12345670:5.5:2.5:5:3:2:1 user5:12345671:2.5:5.5:7:2:3:1 I need to get this: user3:12345687:5.5:2.5:6:1:3:2... (7 Replies)
Discussion started by: daniel.gbaena
7 Replies

10. UNIX and Linux Applications

procmailrc ignores INCLUDERC?

I have been using a procmail recipe for some time. I successfully include numerous INCLUDERC files. However, since each of these include files have become rather large over time, I started to try to organize better. So where procmailrc once just had: INCLUDERC=$PMDIR/original-filters.rc ... (0 Replies)
Discussion started by: BostonDriver
0 Replies
Login or Register to Ask a Question