Sponsored Content
Full Discussion: arranging columns with AWK
Top Forums Shell Programming and Scripting arranging columns with AWK Post 302479691 by binlib on Sunday 12th of December 2010 01:19:32 PM
Old 12-12-2010
Since you didn't define what quantifies as closest, I made up the number 3.5. You may need to fine tune the function closest to get the best approximation.
Code:
awk '
function closest(x, i   , j)
{
  for (j = 1; j <= c[i]; ++j)
    if (x < a[i,j]+d && x > a[i,j]-d)
      return a[i,j]
  return "N/A"
}

d < 1 {
  if (FNR == 1)
    f[++n] = FILENAME
  a[n, FNR] = $0
  ++c[n]
}

d > 0 {
  if (FNR == 1) {
    printf("%s", FILENAME)
    for (i = 1; i <= n; ++i)
      printf("\t%s", f[i])
    printf("\n")
  }

  for (i = 1; i <= n; ++i)
    $(i+1) = closest($1, i)
  print
}
' file1 file2 OFS='\t' d=3.5 ReFile

This User Gave Thanks to binlib For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

re-arranging text in a file with AWK

Hi Gurus, I have a text file that I want to process with the following structure; 4528788 Blah - Something 9341423 Text - Somethinghere 98792223,5546761 Some - More - Text 5119503,5159504,1234567 Text - More - Text 13459695 Stuff - Text Again 13526583 Junk - More Text Here 13595177... (1 Reply)
Discussion started by: th3g0bl1n
1 Replies

2. Shell Programming and Scripting

Arranging files

Hi all, This is program to identify and arrange programs(scripts) based on their she-bang values to a folder with the same name. The parts of mkdir and copy and creating problems.I also doubt the use of hash...maybe some problems in it. Please help out debugging this. Code pasted at: Paste... (2 Replies)
Discussion started by: Vivek788
2 Replies

3. Shell Programming and Scripting

need help in arranging the alias

Hello Guys, I have around 100 hosts setup as alias in my profile for easy sshing. alias ada='ssh -Y username@da.domain.com' alias ast='ssh -Y username@terix.domain.com' alias bb1='ssh -X username@ggserver.ns.domain.com' . . . . I now would like to use sshmenu software in which... (4 Replies)
Discussion started by: upengan78
4 Replies

4. UNIX for Dummies Questions & Answers

Arranging data

I have thousand lines of data...: A 1 B 2 C 3 D 4 E 5 A 21 B 22 C 23 D 24 E 25 A 31 B 32 C 33 D 34 E 35 ........... ON AND AND ON (3 Replies)
Discussion started by: bobo
3 Replies

5. Shell Programming and Scripting

Need Help in arranging the output

Hello All, Please find attached input and output files. I want to write a shell script to achieve this. I tried using awk but not getting how to do this as I am new to shell programming. Thanks (4 Replies)
Discussion started by: Sudeep Bhattad
4 Replies

6. UNIX for Dummies Questions & Answers

Arranging columns in a line

Hi, Please give a solution... Current File 200101701 A 5 B 283 D 222 200085506 A 5 B 6 C 304 200081406 A 5 200101784 D 1111Desired Output 200101701 A 0005 B 0283 * * D 222 ... (4 Replies)
Discussion started by: satyar
4 Replies

7. Shell Programming and Scripting

Need help in arranging data

I have a file with user activity and need to display only the start and end timestamp of the activity. I don't know how can we write an logic for this please help me in a bettr way to work on it User Activity_log ----------------------------------- ... (5 Replies)
Discussion started by: lazydev
5 Replies

8. UNIX for Beginners Questions & Answers

Help arranging text

By using this code how can we get the stars in inverted positions? str="*" for i in 1 2 3 4 5 do echo "$str" str="$str *" done The output should be like this * * * * * * * * * * * * * * * Please use CODE tags as required by forum rules!... (5 Replies)
Discussion started by: Meeran Rizvi
5 Replies

9. Shell Programming and Scripting

Sorting/Arranging file based on tags using awk

Hi, I have file which contains data based on tags. Output of the file should be in order of tags. Below are the files : Tags.txt f12 f13 f23 f45 f56 Original data is like this : Data.txt 2017/01/04|09:07:00:021|R|XYZ|38|9|1234|f12=CAT|f23=APPLE|f45=PENCIL|f13=CAR... (5 Replies)
Discussion started by: Prathmesh
5 Replies

10. UNIX for Beginners Questions & Answers

How to use "awk" to print columns from different files in separate columns?

Hi, I'm trying to copy and paste the sixth column from a bunch of files into a single file having each column pasted in separate columns (and not one after each other in just one column.) I tried this code but works only partially because it copied and pasted 50 rows of each column... (6 Replies)
Discussion started by: Frastra
6 Replies
DIFF3(1)						      General Commands Manual							  DIFF3(1)

NAME
diff3 - 3-way differential file comparison SYNOPSIS
diff3 [ -exEX3 ] file1 file2 file3 DESCRIPTION
Diff3 compares three versions of a file, and publishes disagreeing ranges of text flagged with these codes: ==== all three files differ ====1 file1 is different ====2 file2 is different ====3 file3 is different The type of change suffered in converting a given range of a given file to some other is indicated in one of these ways: f : n1 a Text is to be appended after line number n1 in file f, where f = 1, 2, or 3. f : n1 , n2 c Text is to be changed in the range line n1 to line n2. If n1 = n2, the range may be abbreviated to n1. The original contents of the range follows immediately after a c indication. When the contents of two files are identical, the contents of the lower-numbered file is suppressed. Under the -e option, diff3 publishes a script for the editor ed that will incorporate into file1 all changes between file2 and file3, i.e. the changes that normally would be flagged ==== and ====3. Option -x (-3) produces a script to incorporate only changes flagged ==== (====3). The following command will apply the resulting script to `file1'. (cat script; echo '1,$p') | ed - file1 The -E and -X are similar to -e and -x, respectively, but treat overlapping changes (i.e., changes that would be flagged with ==== in the normal listing) differently. The overlapping lines from both files will be inserted by the edit script, bracketed by "<<<<<<" and ">>>>>>" lines. For example, suppose lines 7-8 are changed in both file1 and file2. Applying the edit script generated by the command "diff3 -E file1 file2 file3" to file1 results in the file: lines 1-6 of file1 <<<<<<< file1 lines 7-8 of file1 ======= lines 7-8 of file3 >>>>>>> file3 rest of file1 The -E option is used by RCS merge(1) to insure that overlapping changes in the merged files are preserved and brought to someone's atten- tion. FILES
/tmp/d3????? /usr/libexec/diff3 SEE ALSO
diff(1) BUGS
Text lines that consist of a single `.' will defeat -e. 7th Edition October 21, 1996 DIFF3(1)
All times are GMT -4. The time now is 03:47 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy