The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
Google UNIX.COM


Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Replace 3 fields with null in the file vukkusila Shell Programming and Scripting 1 09-11-2007 10:10 PM
How can find Null value in If condition koti_rama Shell Programming and Scripting 2 07-17-2007 02:20 AM
Find fields with no spaces in value alfredo123 UNIX for Dummies Questions & Answers 10 04-18-2007 03:14 PM
Find files which contain a null character Bab00shka UNIX for Dummies Questions & Answers 5 12-16-2005 07:41 AM
mv /dev/null file raj8 UNIX for Dummies Questions & Answers 3 07-17-2003 01:36 PM

Reply
 
Submit Tools LinkBack Thread Tools Search this Thread Display Modes
  #1  
Old 06-22-2006
Registered User
 

Join Date: Sep 2004
Location: Mumbai-India
Posts: 156
Find null fields in file

Hi All,

I have some csv files out of which i want to find records which have empty values in either the 14th or 16th fields.

The following is a sample.

$cut -d',' -f14,16 SPS* | head -5
VOIP_ORIG_INFO,VOIP_DEST_INFO
sip:445600709315@sip.com,sip:999@sip.com
sip:445600709315@sip.com,tel:999
sip:445600702897@sip.com,sip:08007317929@sip.com
sip:445600702897@sip.com,sip:08007317929@sip.com

Please let me know, what would be the filter criteria to find records and filename where these fields are empty.

Thanks,
Ashish.
Reply With Quote
Forum Sponsor
  #2  
Old 06-22-2006
blowtorch's Avatar
Supporter
 
Join Date: Dec 2004
Location: Singapore
Posts: 2,326
How do you know that a field is empty? Would there be just two commas following each other? Something like this?
Code:
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17...
1,2,3,4,5,6,7,8,9,10,11,12,13,,15,16,17...
1,2,3,4,5,6,7,8,9,10,11,12,13,,15,,17...
Note that the fourteenth field is empty in the second and the third line, while the sixteenth field is empty in the third line.
If so, then you can just use the command that you've used.
Code:
bash-3.00$ cat test
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
1,2,3,4,5,6,7,8,9,10,11,12,13,,15,16,17
1,2,3,4,5,6,7,8,9,10,11,12,13,,15,,17
bash-3.00$ cat test.sh
#!/usr/bin/ksh
oldIFS=$IFS
IFS=$IFS,
export IFS
cut -d',' -f14,16 test|while read fourteen sixteen; do
        echo fourteen: $fourteen sixteen: $sixteen
        [[ -z "$fourteen" ]] && echo fourteenth field is blank
        [[ -z "$sixteen" ]] && echo sixteenth field is blank
done
Reply With Quote
  #3  
Old 06-23-2006
Ygor's Avatar
Moderator
 

Join Date: Oct 2003
Location: -31.96,115.84
Posts: 1,249
Try...
Code:
awk -F, '!$14||!$16{printf "Filename:%s Line:%s Data:%s,%s\n", FILENAME, NR, $14, $16}' SPS*
Reply With Quote
Google The UNIX and Linux Forums
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes




All times are GMT -7. The time now is 11:39 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008. All Rights Reserved.Ad Management by RedTyger Visit The Complex Event Processing Blog

Content Relevant URLs by vBSEO 3.2.0