Sponsored Content
Full Discussion: Collapsing similar strings
Top Forums UNIX for Dummies Questions & Answers Collapsing similar strings Post 302962929 by RudiC on Monday 21st of December 2015 04:16:02 AM
Old 12-21-2015
Rats! Yes, states were collected unconditionally. Try
Code:
awk '
        {IX=$0                                          # create index for arrays
         gsub ($1 FS $2 FS "|" FS "*$", "", IX)         # modify/adapt index
         FREQ[IX]++                                     # count occurrences
         if (ST[IX] !~ $2) ST[IX] = ST[IX] $2 FS        # keep unique states
         FQST[$2 FS IX]++                               # count state/index occurrences
         BC[IX] = $1                                    # keep arbitrary BC code
        }

END     {for (f in FREQ)                                # run across all indices
                {printf "%s%s%s  ", BC[f], FS, f        # print BC code and index (former fields 3 - 14)
                 n = split (ST[f], T)                   # get back state
                 if (n == 2)    print T[1]              # single state? print just it
                 else   {for (i=1; i<n; i++) printf "%s(%s)%s", T[i], FQST[T[i] FS f], i==n-1?"-":","    
                                                        # multiple states? print each state''s frequency
                         printf "Freq-%s\n",  FREQ[f]   # and overall frequency of occurrences
                        }
                }
        }
' FS="\t" file

This User Gave Thanks to RudiC For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to concatenate two strings or several strings into one string in B-shell?

like connect "summer" and "winter" to "summerwinter"? Can anybody help me? thanks a lot. (2 Replies)
Discussion started by: fontana
2 Replies

2. UNIX for Dummies Questions & Answers

Delete strings in file1 based on the list of strings in file2

Hello guys, should be a very easy questn for you: I need to delete strings in file1 based on the list of strings in file2. like file2: word1_word2_ word3_word5_ word3_word4_ word6_word7_ file1: word1_word2_otherwords..,word3_word5_others... (7 Replies)
Discussion started by: roussine
7 Replies

3. Shell Programming and Scripting

Collapsing and counting by key column in a sorted file

Hi I have a tab separated file with reads mappings of more than 2 million reads> the file is sorted by ID and looks like the following: SeqID Seq FreqSeq PosSeq HWI-EA332_0036:5:100:10131:16361#ATGC/1 GACTTGAGGTCTCCCCCGCA 1 TZRTMR_40497:317:+... (4 Replies)
Discussion started by: ramouz87
4 Replies

4. Shell Programming and Scripting

Delete lines in file containing duplicate strings, keeping longer strings

The question is not as simple as the title... I have a file, it looks like this <string name="string1">RZ-LED</string> <string name="string2">2.0</string> <string name="string2">Version 2.0</string> <string name="string3">BP</string> I would like to check for duplicate entries of... (11 Replies)
Discussion started by: raidzero
11 Replies

5. Shell Programming and Scripting

awk to search similar strings and add their values

Hi, I have a text file with the following content: monday,20 tuesday,10 wednesday,29 monday,10 friday,12 wednesday,14 monday,15 thursday,34 i want the following output: monday,45 tuesday,10 wednesday,43 friday,12 (3 Replies)
Discussion started by: prashu_g
3 Replies

6. Shell Programming and Scripting

awk to search similar strings and arrange in a specified pattern

Hi, I'm running a DB query which returns names of people and writes it in a text file as shown below: Carey, Jim; Cena, John Cena, John Sen, Tim; Burt, Terrence Lock, Jessey; Carey, Jim Norris, Chuck; Lee, Bruce Rock, Dwayne; Lee, Bruce I want to use awk and get all the names... (9 Replies)
Discussion started by: prashu_g
9 Replies

7. UNIX for Dummies Questions & Answers

Finding similar strings between two files

Hi, I have a file1 like this: ABAT ABCA1 ABCC1 ABCC5 ABCC8 ABCE1 ABHD2 ABL1 CAMTA1 ACBD3 ACCN1 And I have a second file like this: chr19 46118590 46119564 MACS_peak_1499 3100.00 chr19 46122009 46148405 CYP2B7P1 -2445 chr1 7430312 7430990... (7 Replies)
Discussion started by: a_bahreini
7 Replies

8. UNIX for Dummies Questions & Answers

Issue when using egrep to extract strings (too many strings)

Dear all, I have a data like below (n of rows=400,000) and I want to extract the rows with certain strings. I use code below. It works if there is not too many strings for example n of strings <5000. while I have 90,000 strings to extract. If I use the egrep code below, I will get error: ... (3 Replies)
Discussion started by: forevertl
3 Replies

9. UNIX for Beginners Questions & Answers

How to pass strings from a list of strings from another file and create multiple files?

Hello Everyone , Iam a newbie to shell programming and iam reaching out if anyone can help in this :- I have two files 1) Insert.txt 2) partition_list.txt insert.txt looks like this :- insert into emp1 partition (partition_name) (a1, b2, c4, s6, d8) select a1, b2, c4, (2 Replies)
Discussion started by: nubie2linux
2 Replies

10. UNIX for Beginners Questions & Answers

Use strings from nth field from one file to match strings in entire line in another file, awk

I cannot seem to get what should be a simple awk one-liner to work correctly and cannot figure out why. I would like to use patterns from a specific field in one file as regex to search for matching strings in the entire line ($0) of another file. I would like to output the lines of File2 which... (1 Reply)
Discussion started by: jvoot
1 Replies
xpc_array_create(3)					   BSD Library Functions Manual 				       xpc_array_create(3)

NAME
xpc_array_create -- creation and management of XPC arrays SYNOPSIS
#include <xpc/xpc.h> xpc_object_t xpc_array_create(const xpc_object_t *objects, size_t count); void xpc_array_set_value(xpc_object_t array, size_t index, xpc_object_t value); void xpc_array_append_value(xpc_object_t array, xpc_object_t value); xpc_object_t xpc_array_get_value(xpc_object_t array, size_t index); size_t xpc_array_get_count(xpc_object_t array); bool xpc_array_apply(xpc_object_t array, xpc_array_applier_t applier); void xpc_array_set_bool(xpc_object_t array, size_t index, bool value); void xpc_array_set_int64(xpc_object_t array, size_t index, int64_t value); void xpc_array_set_uint64(xpc_object_t array, size_t index, uint64_t value); void xpc_array_set_double(xpc_object_t array, size_t index, double value); void xpc_array_set_date(xpc_object_t array, size_t index, int64_t value); void xpc_array_set_data(xpc_object_t array, size_t index, const void *bytes, size_t length); void xpc_array_set_string(xpc_object_t array, size_t index, const char *value); void xpc_array_set_uuid(xpc_object_t array, size_t index, const uuid_t value); void xpc_array_set_fd(xpc_object_t array, size_t index, int value); void xpc_array_set_connection(xpc_object_t array, size_t index, xpc_connection_t value); bool xpc_array_get_bool(xpc_object_t array, size_t index); int64_t xpc_array_get_int64(xpc_object_t array, size_t index); uint64_t xpc_array_get_uint64(xpc_object_t array, size_t index); double xpc_array_get_double(xpc_object_t array, size_t index); int64_t xpc_array_get_date(xpc_object_t array, size_t index); const void * xpc_array_get_data(xpc_object_t array, size_t index, size_t *length); const uint8_t * xpc_array_get_uuid(xpc_object_t array, size_t index); const char * xpc_array_get_string(xpc_object_t array, size_t index); int xpc_array_get_fd(xpc_object_t array, size_t index); xpc_connection_t xpc_array_get_connection(xpc_object_t array, size_t index); ARRAYS
XPC arrays are collections of XPC objects ordered by index. The index is zero-based. XPC arrays are contiguous, and values must exist at all indexes between zero and the greatest index of the array. A hole in the array can be simulated by using a null object as returned by xpc_null_create(3). CREATION
The xpc_array_create() function returns a newly created array. The caller may optionally provide objects, a C array of XPC object references, to initialize the array. The count is used to specify the size of the C array. If objects is NULL, then count must be zero. If count speci- fies more elements than are actually present in values or if values is NULL and count is non-zero, the behavior is undefined. GETTING AND SETTING VALUES
The xpc_array_append_value() function may be used to append a value to the end of an array. This operation increases the count of the values in the array by one. The value of a specific index in the array may be set using the xpc_array_set_value() function. The value must be non-NULL, and the index must already exist (i.e. less than the count provided at creation or extended through previous append operations). The value at a specific index of an array may be retrieved using the xpc_array_get_value() function. The result of getting a non-existing index (i.e. one that was not specified at creation or through a previous append operation) in undefined. PRIMITIVE GET AND SET FUNCTIONS
Various functions exist for retrieving primitive C and operating system types directly from an array without the need for an intermediate boxed object. See xpc_object(3) for more information. The special XPC_ARRAY_APPEND constant may be used to append a value to the end of the array instead of operating on a specific index. SEE ALSO
xpc_object(3), xpc_objects(3), xpc_dictionary_create(3) Darwin 1 July, 2011 Darwin
All times are GMT -4. The time now is 07:16 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy