Sponsored Content
Full Discussion: Row blocks to column blocks
Top Forums Shell Programming and Scripting Row blocks to column blocks Post 302808785 by shamrock on Friday 17th of May 2013 01:41:13 PM
Old 05-17-2013
Quote:
Originally Posted by yifangt
How about if I have same header for each block as "ID Length Per"?...
In that case try the following awk snippet...
Code:
awk '/^Id/ {s = $0; l = length() + 6; ws = sprintf("%*s", l, " ")}
    !/^Id/ {
      a[$1]++
      max = (max > a[$1] ? max : a[$1])
      if ($1 != prev) b[++j] = $1
      c[$1,a[$1]] = $0
      prev = $1
} END {
      for (i = 1; i <=j; i++) {
          t = sprintf("%-*s", l, s)
          h = (h ? h "" t : t)
      }
      printf("%s\n", h)
      for (k = 1; k <= max; k++) {
          for (i = 1; i <= j; i++) {
              if ((f = c[b[i],k])) {
                 m = l - length(f)
                 r = sprintf("%*s", m, " ")
                 str = sprintf("%s", str ? str "" f "" r : f "" r)
              }
              else str = sprintf("%*s", l, str ? str "" ws : ws)
          }
          printf("%s\n", str) 
          str = ""
      }
}' file

where file looks like...
Code:
Id     Length    Per
S02    7043      3.864
S02    54477     29.89
S02    104841    57.52
Id     Length    Per
S03    1150      0.835
S03    1321      0.96
S03    6432      4.675
S03    6922      5.031
S03    11705     8.507
S03    13793     10.02
S03    34275     24.91
S03    38238     27.79
Id     Length    Per
S04    11398     8.887
S04    17396     13.56
S04    94014     73.3

This User Gave Thanks to shamrock For This Post:
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extract sequence blocks

Hi, I have an one-line file consisting of a sequence of 660 letters. I would like to extract 9-letter blocks iteratively: ASDFGHJKLQWERTYUIOPZXCVBNM first block: ASDFGHJKL 1nd block: SDFGHJKLQ What I have so far only gives me the first block, can anyone please explain why? cat... (7 Replies)
Discussion started by: solli
7 Replies

2. Shell Programming and Scripting

How to read text in blocks

Hi, I have file which contains information written in blocks (every block is different). Is it possible to read every block one by one to another file (one block per file). The input is something like this <block1> <empty line> <block2> <empty line> ... ... ... <block25> <empty... (0 Replies)
Discussion started by: art84_)LV
0 Replies

3. Shell Programming and Scripting

Removing blocks from a file

I have a file like the one below. Each record is separated with > In between I have lines consisting of 3 numeric values separated by a space. I need to take each block between the > sign and read the first number in the line. Then take the first after the > sign and the last before the >... (7 Replies)
Discussion started by: kristinu
7 Replies

4. Shell Programming and Scripting

Help with Script using Command Blocks

Hello, I am trying to create a shell script that use command block (donīt really know if this is the correct way to say it), but while one version works fine, the other one is not working at all. So let me show an example of this "command block" Iīm using and its working ok: cat << _EOF_ `echo... (7 Replies)
Discussion started by: Alexis Duarte
7 Replies

5. UNIX for Dummies Questions & Answers

Convert 512-blocks to 4k blocks

I'm Unix. I'm looking at "df" on Unix now and below is an example. It's lists the filesystems out in 512-blocks, I need this in 4k blocks. Is there a way to do this in Unix or do I manually convert and how? So for container 1 there is 7,340,032 in size in 512-blocks. What would the 4k block be... (2 Replies)
Discussion started by: rockycj
2 Replies

6. Shell Programming and Scripting

how to split this file into blocks and then send these blocks as input to the tool called Yices?

Hello, I have a file like this: FILE.TXT: (define argc :: int) (assert ( > argc 1)) (assert ( = argc 1)) <check> # (define c :: float) (assert ( > c 0)) (assert ( = c 0)) <check> # now, i want to separate each block('#' is the delimeter), make them separate files, and then send them as... (5 Replies)
Discussion started by: paramad
5 Replies

7. UNIX for Dummies Questions & Answers

Duplicate blocks in an inode

I have 2 duplicate blocks in an inode and I want to get rid of one of them so that I can get into my pc. The message I get is Multiply-claimed block(s) in inode 5997500: 12690101 12690101. All help is appreciated. Thanks (7 Replies)
Discussion started by: Nighttrain
7 Replies

8. Shell Programming and Scripting

Transpose info that is within blocks

Hello to all in forum, I have a big file with blocks of data. Each block begins with "BeginOfRecord".... (17 Replies)
Discussion started by: Ophiuchus
17 Replies

9. Shell Programming and Scripting

Blocks into table

please help, I have a huge file with blocks of data which I need to convert to a tabular format. Input sample id: GO:0000017 name: alpha-glucoside transport namespace: biological_process def: "The directed movement of alpha-glucosides into, out of or within a cell, or between... (3 Replies)
Discussion started by: ritakadm
3 Replies
PREV(1) 							     [nmh-1.5]								   PREV(1)

NAME
prev - show the previous message SYNOPSIS
prev [+folder] [-showproc program] [-showmimeproc program] [-header | -noheader] [-checkmime | -nocheckmime] [switches for showproc or showmimeproc] [-version] [-help] DESCRIPTION
Prev performs a show on the previous message in the specified (or current) folder. Like show, it passes any switches on to the program named by showproc or showmimeproc, which is called to list the message. This command is almost exactly equivalent to "show prev". Consult the manual entry for show(1) for all the details. FILES
$HOME/.mh_profile The user profile PROFILE COMPONENTS
Path: To determine the user's nmh directory Current-Folder: To find the default current folder showproc: Program to show non-MIME messages showmimeproc: Program to show MIME messages SEE ALSO
show(1), next(1) DEFAULTS
`+folder' defaults to the current folder `-checkmime' `-header' CONTEXT
If a folder is specified, it will become the current folder. The message that is shown (i.e., the previous message in sequence) will become the current message. BUGS
prev is really a link to the show program. As a result, if you make a link to prev and that link is not called prev, your link will act like show instead. To circumvent this, add a profile-entry for the link to your nmh profile and add the argument prev to the entry. MH.6.8 11 June 2012 PREV(1)
All times are GMT -4. The time now is 05:25 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy