Sponsored Content
Top Forums Shell Programming and Scripting Script to find string based on pattern and search for its corresponding rows in column Post 303037207 by Chubler_XL on Thursday 25th of July 2019 04:14:58 PM
Old 07-25-2019
You should store all the $2 values that match as a CSV in assoc. Then use a recursive function to walk thru assoc for each match:

Code:
awk -F, '
function prn_assoc(val,cnt,newvals)
{
   if(val in seen) return
   seen[val]
   printf ",%s",val
   split(assoc[val], newvals)
   for(cnt in newvals)
       prn_assoc(newvals[cnt])
}
NR==FNR{
    if($1 in assoc)
       assoc[$1]=assoc[$1] FS $2
    else assoc[$1]=$2
    next
}
$1~"9K" {
   printf "%s", $1
   split("", seen)
   seen[$1]
   prn_assoc($2)
   printf "\n"
}' inputfile.csv inputfile.csv > output.csv


Last edited by Chubler_XL; 07-25-2019 at 05:34 PM.. Reason: simplify prn_assoc() and ensure $1 populated in seen[]
This User Gave Thanks to Chubler_XL For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script to find the average of a given column and also for specified number of rows??

Hi friends I have 100 files in my directory. Each file look like this.. Temp1 Temp2 Temp3 MAS 1 2 3 MAS 4 5 6 MAS 7 8 9 Delhi 10 11 12 Delhi 13 14 15 Delhi 16 17 ... (4 Replies)
Discussion started by: ks_reddy
4 Replies

2. Shell Programming and Scripting

Script to find the average of a given column and also for specified number of rows?

Hi Friends, In continuation to my earlier post https://www.unix.com/shell-programming-scripting/99166-script-find-average-given-column-also-specified-number-rows.html I am extending my problem as follows. Input: Column1 Column2 MAS 1 MAS 4 ... (2 Replies)
Discussion started by: ks_reddy
2 Replies

3. Shell Programming and Scripting

Print a pattern between the xml tags based on a search pattern

Hi all, I am trying to extract the values ( text between the xml tags) based on the Order Number. here is the sample input <?xml version="1.0" encoding="UTF-8"?> <NJCustomer> <Header> <MessageIdentifier>Y504173382</MessageIdentifier> ... (13 Replies)
Discussion started by: oky
13 Replies

4. Shell Programming and Scripting

need to remove duplicates based on key in first column and pattern in last column

Given a file such as this I need to remove the duplicates. 00060011 PAUL BOWSTEIN ad_waq3_921_20100826_010517.txt 00060011 PAUL BOWSTEIN ad_waq3_921_20100827_010528.txt 0624-01 RUT CORPORATION ad_sade3_10_20100827_010528.txt 0624-01 RUT CORPORATION ... (13 Replies)
Discussion started by: script_op2a
13 Replies

5. Shell Programming and Scripting

bash script to find date based on search string for continuesly updating file

Hi All, I am very new to UNIX and I have tried this for a longtime now and unable to crack it.... There is a file that is continuously updating. I need to search for the string and find the date @ which it updated every day..... eg: String is "work started" The log entry is as below: ... (1 Reply)
Discussion started by: Nithz
1 Replies

6. Shell Programming and Scripting

sed or awk command to replace a string pattern with another string based on position of this string

here is what i want to achieve... consider a file contains below contents. the file size is large about 60mb cat dump.sql INSERT INTO `table1` (`id`, `action`, `date`, `descrip`, `lastModified`) VALUES (1,'Change','2011-05-05 00:00:00','Account Updated','2012-02-10... (10 Replies)
Discussion started by: vivek d r
10 Replies

7. Shell Programming and Scripting

Find and copy files based on todays date and search for a particular string

Hi All, I am new to shell srcipting. Problem : I need to write a script which copy the log files from /prod/logs directory based on todays date like (Jul 17) and place it to /home/hzjnr0 directory and then search the copied logfiles for the string "@ending successfully on Thu Jul 17". If... (2 Replies)
Discussion started by: mail.chiranjit
2 Replies

8. UNIX for Dummies Questions & Answers

merging rows into new file based on rows and first column

I have 2 files, file01= 7 columns, row unknown (but few) file02= 7 columns, row unknown (but many) now I want to create an output with the first field that is shared in both of them and then subtract the results from the rest of the fields and print there e.g. file 01 James|0|50|25|10|50|30... (1 Reply)
Discussion started by: A-V
1 Replies

9. Shell Programming and Scripting

How can I use find command to search string/pattern in a file recursively?

Hi, How can I use find command to search string/pattern in a file recursively? What I tried: find . -type f -exec cat {} | grep "make" \; Output: grep: find: ;: No such file or directory missing argument to `-exec' And this: find . -type f -exec cat {} \; -exec grep "make" {} \;... (12 Replies)
Discussion started by: cola
12 Replies

10. UNIX for Beginners Questions & Answers

Merging rows based on same ID in First column.

Hellow, I have a tab-delimited file with 3 columns : BINPACKER.13259.1.p2 SSF48239 BINPACKER.13259.1.p2 PF13243 BINPACKER.13259.1.p2 G3DSA:1.50.10.20 BINPACKER.13259.2.p2 SSF48239 BINPACKER.13259.2.p2 PF13243 BINPACKER.13259.2.p2 G3DSA:1.50.10.20... (7 Replies)
Discussion started by: anjaliANJALI
7 Replies
AXPARMS(8)						   Linux System Managers Manual 						AXPARMS(8)

NAME
axparms - Configure AX.25 interfaces. SYNOPSIS
axparms --assoc|--forward|--route|--setcall|--version ... DESCRIPTION
The axparms command is designed to be a multi-function command that allows miscellaneous commands to be issued to the Linux AX.25 protocol layer. It includes the functionality of axassociate and axsetcall which this command superceedes. The different modes of the command are chosen by the first argument. Sunsequent arguments depend upon this argument and so no generalised command format can be given. --assoc Argument The format of this option is: axparms --assoc <callsign> <username> axparms --assoc <callsign> delete axparms --assoc policy [default|deny] axparms --assoc show This option mainpulates the kernel uid/callsign mapping table, allowing callsigns to be associated and dis-associated with a user. The pol- icy option permits the superuser to have all other uid's either default to the actual port name, or to block traffic. At power up the table is blank and the policy is 'default', which is thus backward compatible. --forward Argument Allows the use of many receivers with one transmitter, known as packet forwarding in many systems. The format of this command is: axparms --forward <portfrom> <portto> axparms --forward <portfrom> delete Any packets to be transmitted on port portfrom will be transmitted on port portto. This will stay in force until the second form of the command is issued which will remove the association. --route Argument This option allows the internal AX.25 routing table to be manipulated. This table is available for reading in /proc/net/ax25_route, and will be built up dynamically by stations heard. However it is possible to add, delete and list entries via this option. The formats of this option are: axparms --route add <port> <callsign> [<digis>] [--ipmode V|D] axparms --route del <port> <callsign> axparms --route list Routes added via this command will not be removed from the internal routing table when they are "old" as normal entries are. The --ipmode option sets mode vc or mode datagram for this destination. If the <callsign> argument is set to "default" then this will set the default route for all outgoing AX.25 connections which will be used when there is no specific route to the required destination. --setcall Argument The format of this option is: axparms --setcall <interface> <callsign> This changes the callsign associated at the given physical ax25 interface. Cave: The interface name is not the symbolic port name from axports, but the real interface name (from ifconfig(8)): ax0, ax1, .., sp0, .., bpq0, ... etc.. The change is permanent as long as the interface exists, or another "axparms --setcall" is issued. The interface has to exist already in order to use this option; it may be in state UP or DOWN. --version Argument This option displays the version of the AX.25 utilities that axparms belongs to. FILES
/proc/net/ax25_bpqether /proc/net/ax25_calls /etc/ax25/axports SEE ALSO
call(1), getsockopt(2), setsockopt(2), ax25(4), axctl(8), axports(5). AUTHORS
Alan Cox GW4PTS <alan@cymru.net> Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk> Joerg Reuter DL1BKE <jreuter@poboxes.com> Linux 25 July 1997 AXPARMS(8)
All times are GMT -4. The time now is 06:29 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy