Extract data between ","


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Extract data between ","
# 1  
Old 03-04-2013
Extract data between ","

I have a doc with following data (doc file.txt)

Code:
INFO 95,196,77,1,20,19,12

I would like to extract each data between commas and grep each number on another file called say test.txt

For eg:

Take 95 from file.txt, grep it on test.txt
then take 196 file.txt, grep it on test.txt
and so on for all numbers

Any help please.

Last edited by vbe; 03-11-2013 at 03:05 PM.. Reason: restored the content...
# 2  
Old 03-04-2013
Code:
#!/bin/bash

while read line
do
        for word in ${line//,/ }
        do
                [[ "$word" = "INFO" ]] && continue      # skip if $word = INFO
                grep "$word" test.txt                   # grep $word on test.txt
        done
done < file.txt

This User Gave Thanks to Yoda For This Post:
# 3  
Old 03-04-2013
Here is one way:
Code:
oIFS=$IFS  ## Save current setting
IFS=","
while read -a Arr theFile
do
  for i in ${Arr[@]}
    do
      [[ "$i" =~ ([0-9]{1,}) ]] && grep "${BASH_REMATCH}" file1.txt
    done
done < t
IFS=$oIFS

Code:
$ cat t
INFO 95,196,77,1,20,19,12

Code:
$ cat file1.txt
123
123
1 2 3
def
456

Code:
$ script.sh
123
123
1 2 3
123
123

# 4  
Old 03-06-2013
Hi Thank you both very much.

But unfortunately I could not get both to do the function i needed. Probably I should explain further.

file.txt ( can contain any data but in the following format)
Code:
YYYY NN,NN,NN

for eg.
Code:
MGM 1,6,3,9,2

or
Code:
INFO 62,12,25,65

so forth

now, test.txt can contain information like
Code:
server name     serverip NN

for eg:

Code:
unix    1.2.3.101     62
c++    5.62.24.123  2

So, from file.txt I need to extact all the numbers indicated as NN
and grep them on test.txt (NN is the last numbers)
I hope this is more clearer. If not please let me know.
Thank you again for the help.

Last edited by Scrutinizer; 03-06-2013 at 11:46 AM.. Reason: code tags
# 5  
Old 03-06-2013
Quote:
Originally Posted by priyanka.premra
I hope this is more clearer. If not please let me know.
Yes, your requirement is clear. But can you show us what have you tried since we have provided you two methods that can be slightly modified to serve your purpose?
# 6  
Old 03-06-2013
I tried both and both dint do the trick Smilie

Ahh i wonder if this makes a difference:

file.txt is in itself a result file.

and that result itself needs to be extracted out in order to perform the grep.

On your commands, I got the needed result, if I manually enter the numbers in place of word.

grep "$word" test.txt replace it with NN

That is where its not getting right Smilie
# 7  
Old 03-06-2013
Try:
Code:
awk -F'[ \t]*|,' 'NR==FNR{ for(i=2;i<=NF;i++) A[$i]; next } $3 in A'  file.txt test.txt

 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Beginners Questions & Answers

Extract delta records using with "comm" and "sort" commands combination

Hi All, I have 2 pipe delimited files viz., file_old and file_new. I'm trying to compare these 2 files, and extract all the different rows between them into a new_file. comm -3 < sort file_old < sort file_new > new_file I am getting the below error: -ksh: sort: cannot open But if I do... (7 Replies)
Discussion started by: njny
7 Replies

4. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

5. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

6. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

7. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

8. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies
Login or Register to Ask a Question