Sponsored Content
Full Discussion: Transpose a file
Top Forums Shell Programming and Scripting Transpose a file Post 302407907 by stateperl on Saturday 27th of March 2010 12:32:39 AM
Old 03-27-2010
Transpose a file

input

Code:
IndID    ID1    ID2    ID3
a1    a/a    b/b    c/c
a2    a/a    b/b    c/c
a3    a/b    b/b    c/d
a6    a/b    b/b    c/e
a8    a/a    b/c    c/e
a9    b/b    b/d    c/e

output
Code:
IDName    IndID    IDtype    C_No
ID1    a1    a/a    1
ID1    a2    a/a    1
ID1    a8    a/a    1
ID1    a3    a/b    2
ID1    a6    a/b    2
ID1    a9    b/b    3    
ID2    a1    b/b    1
ID2    a2    b/b    1
ID2    a3    b/b    1
ID2    a6    b/b    1
ID2    a8    b/c    2
ID2    a9    b/d    3


Note: C_No :: a/a=most frequent similar double letter in ID1 then it will be = 1
b/b=second most..................................ID1 then it will be = 3
a/b=...................dissimilar....................ID1 ...................= 2
Same applies to all IDnames but IDtypes may change
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

transpose file

Hi all, I have a file in the below format.... <A> B C <A> E F <A> G H I need the result file to be: <A>BC <A>EF <A>GH (3 Replies)
Discussion started by: new_ds_man
3 Replies

2. Shell Programming and Scripting

Transpose an entire text file

Hello all, I want to transpose the rows of a file to the columns (every characters include spaces), i.e.: input: abcdefg 123 456 output: a1 b2 c3 d e4 f5 g6 I wrote a script: #!/bin/csh -f (15 Replies)
Discussion started by: heavenfish
15 Replies

3. Shell Programming and Scripting

File Transpose

Hi ALL I have one input file say FILE1 which looks as below. a=1 b=2 c=3 a=4 b=5 c=6 . . . Here a,b,c...etc are variable names. The output file(FILE2) should look like 1,2,3 4,5,6 ..... ..... (5 Replies)
Discussion started by: 46019
5 Replies

4. Shell Programming and Scripting

Rows to Columns - File Transpose

Hi I have an input file and I want to transpose it but I need to take care that if any field is missing for a record it should be popoulated with space for that field - using a shell script INFILE ---------- emp=1 sal=2 loc=abc emp=2 sal=21 sal=22 loc=xyz emp=5 loc=abc OUTFILE... (10 Replies)
Discussion started by: 46019
10 Replies

5. Shell Programming and Scripting

Transpose a text file.

Hello, I have a text file which is like a matrix m rows and n columns. Now I want to convert it into n rows and m columns. Thanks for hint. (1 Reply)
Discussion started by: zhshqzyc
1 Replies

6. Shell Programming and Scripting

Transpose whole file and specific columns

Hi, I have a file like this a b c d e f g h i j k l Case1: I want to transpose the whole file Output1 a d g j b e h k c f i l Case2 Transpose a specific column - Say 3rd (6 Replies)
Discussion started by: jacobs.smith
6 Replies

7. Shell Programming and Scripting

File transpose problem

Hi Friends, I have a file with a structure like this: <file1.csv> field1,field2,field3,field4,field5,field6,field7,field8,field9,field10,field11,field12 Few Salient points on the file's structure (1)The fields from field1 to field6 is fixed and they would always be present in the file... (2 Replies)
Discussion started by: mehimadri12
2 Replies

8. UNIX for Dummies Questions & Answers

Transpose File

Have various files like this: InSlot=0x00000001 InPort=0x00000000 Inref=0x0000002f InSID=0x00000001 OutSlot=0x00000001 OutPort=0x00000002 Outref=0x00000000 OutSID=0x0000000b OutUName_2=14 InSlot=0x00000001 InPort=0x00000000 Inref=0x000001a8 InSID=0x00000001 OutSlot=0x00000001... (5 Replies)
Discussion started by: K@rlos
5 Replies

9. Shell Programming and Scripting

Transpose a txt file

Hello, I have a text file with 148 rows and 2532691 columns. I need to transpose the data. The command that I am using is awk ' { for (i=1; i<=NF; i++) { a = $i } } NF>p { p = NF } END { for(j=1; j<=p; j++) { str=a for(i=2; i<=NR; i++){ ... (6 Replies)
Discussion started by: nans
6 Replies

10. UNIX for Dummies Questions & Answers

Transpose a file

Hello, I have a file which looks like this Input: Sample Genotype Assay Well plate Sample1 T xx A01 1 Sample2 T xx A01 2 Sample3 T xx A01 3 Sample4 T xx A02 4 Sample5 T xx A02 5 Sample6 T xx A02 ... (4 Replies)
Discussion started by: nans
4 Replies
coproc(1F)							   FMLI Commands							coproc(1F)

NAME
coproc, cocreate, cosend, cocheck, coreceive, codestroy - communicate with a process SYNOPSIS
cocreate [-r rpath] [-w wpath] [-i id] [-R refname] [-s send_string] [-e expect_string] command cosend [-n] proc_id string cocheck proc_id coreceive proc_id codestroy [-R refname] proc_id [string] DESCRIPTION
These co-processing functions provide a flexible means of interaction between FMLI and an independent process; especially, they enable FMLI to be responsive to asynchronous activity. The cocreate function starts command as a co-process and initializes communications by setting up pipes between FMLI and the standard input and standard output of command. The argument command must be an executable and its arguments (if any). This means that command expects strings on its input (supplied by cosend) and sends information on its output that can be handled in various ways by FMLI. The cosend function sends string to the co-process identified by proc_id via the pipe set up by cocreate (optionally wpath), where proc_id can be either the command or id specified in cocreate. By default, cosend blocks, waiting for a response from the co-process. Also by default, FMLI does not send a send_string and does not expect an expect_string (except a newline). That is, it reads only one line of out- put from the co-process. If -e expect_string was not defined when the pipe was created, then the output of the co-process is any single string followed by a newline: any other lines of output remain on the pipe. If the -e option was specified when the pipe was created, cosend reads lines from the pipe until it reads a line starting with expect_string. All lines except the line starting with expect_string become the output of cosend. The cocheck function determines if input is available from the process identified by proc_id, where proc_id can be either the command or id specified in cocreate. It returns a Boolean value, which makes cocheck useful in if statements and in other backquoted expressions in Bool- ean descriptors. cocheck receives no input from the co-process; it simply indicates if input is available from the co-process. You must use coreceive to actually accept the input. The cocheck function can be called from a reread descriptor to force a frame to update when new data is available. This is useful when the default value of a field in a form includes coreceive. The coreceive function is used to read input from the co-process identified by proc_id, where proc_id can be either the command or id spec- ified in cocreate. It should only be used when it has been determined, using cocheck, that input is actually available. If the -e option was used when the co-process was created, coreceive will continue to return lines of input until expect_string is read. At this point, coreceive will terminate. The output of coreceive is all the lines that were read excluding the line starting with expect_string . If the -e option was not used in the cocreate, each invocation of coreceive will return exactly one line from the co-process. If no input is available when coreceive is invoked, it will simply terminate without producing output. The codestroy function terminates the read/write pipes to proc-id, where proc_id can be either the command or id specified in cocreate. It generates a SIGPIPE signal to the (child) co-process. This kills the co-process, unless the co-process ignores the SIGPIPE signal. If the co-process ignores the SIGPIPE, it will not die, even after the FMLI process terminates (the parent process id of the co-process will be 1). The optional argument string is sent to the co-process before the co-process dies. If string is not supplied, a NULL string is passed, followed by the normal send_string (newline by default). That is, codestroy will call cosend proc_id string: this implies that codestroy will write any output generated by the co-process to stdout. For example, if an interactive co-process is written to expect a "quit" string when the communication is over, the close descriptor could be defined; close=`codestroy ID 'quit' | message` and any output generated by the co-process when the string quit is sent to it via codestroy (using cosend) would be redirected to the message line. The codestroy function should usually be given the -R option, since you may have more than one process with the same name, and you do not want to kill the wrong one. codestroy keeps track of the number of refnames you have assigned to a process with cocreate, and when the last instance is killed, it kills the process (id) for you. codestroy is typically called as part of a close descriptor because close is evalu- ated when a frame is closed. This is important because the co-process will continue to run if codestroy is not issued. When writing programs to use as co-processes, the following tips may be useful. If the co-process program is written in C language, be sure to flush output after writing to the pipe. (Currently, awk(1) and sed(1) cannot be used in a co-process program because they do not flush after lines of output.) Shell scripts are well-mannered, but slow. C language is recommended. If possible, use the default send_string, rpath and wpath. In most cases, expect_string will have to be specified. This, of course, depends on the co-process. In the case where asynchronous communication from a co-process is desired, a co-process program should use vsig to force strings into the pipe and then signal FMLI that output from the co-process is available. This causes the reread descriptor of all frames to be evaluated immediately. OPTIONS
cocreate options are: -r rpath If -r is specified, rpath is the pathname from which FMLI reads information. This option is usually used to set up communication with processes that naturally write to a certain path. If -r is not specified, cocreate will choose a unique path in /var/tmp. -w wpath If -w is specified, wpath is the pathname to which cosend writes information. This option is usually used so that one process can talk to many different FMLI processes through the same pipe. If -w is not specified, cocreate will choose a unique path in /var/tmp. -i id If -i is specified, id is an alternative name for the co-processinitialized by this cocreate. If -i is not specified, id defaults to command. The argument id can later be used with the other co-processing functions rather than command. This option is typically used, since it facilitates the creation of two or more co-processes generated from the same command. (For example, cocreate -i ID1 program args and cocreate -i ID2 program different_args). -R refname If -R is specified, refname is a local name for the co-process. Since the cocreate function can be issued more than once, a refname is useful when the same co-process is referenced a second or subsequent time. With the -R option, if the co-process already exists a new one will not be created: the same pipes will be shared. Then, refname can be used as an argument to the -R option to codestroy when you want to end a particular connection to a co-process and leave other connections undisturbed. (The co-process is only killed after codestroy -R has been called as many times as cocreate -R was called.) -s send_string The -s option specifies send_string as a string that will be appended to all output sent to the co-process using cosend. This option allows a co-process to know when input from FMLI has completed. The default send_string is a new- line if -s is not specified. -e expect_string The -e option specifies expect_string as a string that identifies the end of all output returned by the co-process. (Note: expect_string need only be the initial part of a line, and there must be a newline at the end of the co-process output.) This option allows FMLI to know when output from the co-process has completed. The default expect_string is a newline if -e is not specified. cosend options are: -n If the -n option is specified, cosend will not wait for a response from the co-process. It simply returns, providing no output. If the -n option is not used, a co-process that does not answer will cause FMLI to permanently hang, waiting for input from the co- process. EXAMPLES
Example 1 Sample commands . . . init=`cocreate -i BIGPROCESS initialize` close=`codestroy BIGPROCESS` . . . reread=`cocheck BIGPROCESS` name=`cosend -n BIGPROCESS field1` . . . name="Receive field" inactive=TRUE value=`coreceive BIGPROCESS` ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ SEE ALSO
awk(1), cat(1), sed(1), vsig(1F), attributes(5) NOTES
If cosend is used without the -n option, a co-process that does not answer will cause FMLI to permanently hang. The use of non-alphabetic characters in input and output strings to a co-process should be avoided because they may not get transferred correctly. SunOS 5.11 5 Jul 1990 coproc(1F)
All times are GMT -4. The time now is 06:20 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy