Sponsored Content
Top Forums Shell Programming and Scripting Compare values in two different files Post 302979667 by drl on Wednesday 17th of August 2016 01:09:23 PM
Old 08-17-2016
Hi.

Using commands to follow the decomposition of the problem into steps:
Code:
#!/usr/bin/env bash

# @(#) s1       Demonstrate filter one file with contents from another, grep

# Utility functions: print-as-echo, print-line-with-visual-space, debug.
# export PATH="/usr/local/bin:/usr/bin:/bin"
LC_ALL=C ; LANG=C ; export LC_ALL LANG
pe() { for _i;do printf "%s" "$_i";done; printf "\n"; }
pl() { pe;pe "-----" ;pe "$*"; }
db() { ( printf " db, ";for _i;do printf "%s" "$_i";done;printf "\n" ) >&2 ; }
db() { : ; }
C=$HOME/bin/context && [ -f $C ] && $C awk tee grep

FILE=${1-data1}

pl " Input data file $FILE:"
cat $FILE

pl " Input file data2:"
cat data2

pl " Amended input data file data3:"
awk '{ print $2,$1}' data2 |
tee data3

rm -f data4
pl " Results, filter data1, selecting data3 contents:"
grep -f data3 data1 |
tee data4
# rm -f data4   # test when grep does not create a file
pe
if [ -s data4 ] # true if file exists and size > 0
then
  while read line       # do some command for each filtered line
  do
    pe " Do your command here with line \"$line\""
  done < data4
else
  pe " No lines selected."
fi

exit 0

producing:
Code:
$ ./s1

Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility "version")
OS, ker|rel, machine: Linux, 3.16.0-4-amd64, x86_64
Distribution        : Debian 8.4 (jessie) 
bash GNU bash 4.3.30
awk GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.2-p3, GNU MP 6.0.0)
tee (GNU coreutils) 8.23
grep (GNU grep) 2.20

-----
 Input data file data1:
AA 3
BB 1
CC 3
DD 6
EE 2
FF 6

-----
 Input file data2:
1 EE
3 CC
2 AA
12 AF

-----
 Amended input data file data3:
EE 1
CC 3
AA 2
AF 12

-----
 Results, filter data1, selecting data3 contents:
CC 3

 Do your command here with line "CC 3"

Best wishes ... cheers, drl

PS I thought I had posted this earlier, apologies if it becomes a duplicate post
This User Gave Thanks to drl For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare values between files

I have two files with same name residing in different directory. Each file has 14 columns. I want to compare column by column for each row. Also, have to take two columns as key identifier;pick a row in File1; retrieve the corresponding row from file2 and then compare the values. Can... (1 Reply)
Discussion started by: Sangtha
1 Replies

2. Shell Programming and Scripting

Need to compare values on two CSV files

:( Hello, Having a problem with reading two files using awk/nawk, am new to both them. I need to compare field values between two csv files and arrange for an appropriate output if both the values are equal or not for each feild. $cat File1.csv... (4 Replies)
Discussion started by: pgop
4 Replies

3. Shell Programming and Scripting

open 2 files and compare values script - urgent

Hi gurus I have two csv files that are outputs. The file contains data similar to s.no,number1,number2,date1 -------------------------------- 1, a123,482.29,11/28/07 13:00 2,a124,602.7,9/24/07 14:00 3,a125,266.93,10/9/07 16.48 4,a126,785.15,11/14/07 16:08 <file 2> s.no name... (2 Replies)
Discussion started by: inkyponky
2 Replies

4. Shell Programming and Scripting

Compare two files based on values of fields.

Hi All, I have two files and data looks like this: File1 Contents #Field1,Field2 Dist_Center_file1.txt;21 Dist_Center_file3.txt;20 Dist_Center_file2.txt;20 File2 Contents (*** No Header ***) Dist_Center_file1.txt;23 Dist_Center_file2.txt;20 Dist_Center_file3.txt;20 I have... (4 Replies)
Discussion started by: Hangman2
4 Replies

5. Shell Programming and Scripting

Compare to files and export only different values

Hello, I need to compare two files which have the following structure File1: No : 1 Name : George/Brown Value2 : type2 Value3 : type3 Date : Wed Oct 20 11:12:58 2010 Value : yes No : 2 Name : John/Cash Value2 :... (4 Replies)
Discussion started by: @dagio
4 Replies

6. UNIX for Dummies Questions & Answers

Compare two flat files and update one based on the values in the other

Hi, I'm a newbie to scripting and am trying to compare two files using awk. The files are exactly the same dimensions. Where the first file has 0's I would like to create an updated version of the second file which has the corresponding elements set to zero also. eg: file1: 12345 1 2 0... (3 Replies)
Discussion started by: kasan0
3 Replies

7. Shell Programming and Scripting

ksh to compare alphanumeric values from 2 files

Hi there, I want to compare 2nd column which are alphanumeric values from each of the 2 files i.e.,lspv_pre.out and lspv_post.out , if found echo some message. lspv_pre.out hdisk0 00c39eaa451144dd rootvg active hdisk1 00c39eaa45223322 ... (3 Replies)
Discussion started by: mbak
3 Replies

8. Shell Programming and Scripting

Compare values in two files. For matching rows print corresponding values from File 1 in File2.

- I have two files (File 1 and File 2) and the contents of the files are mentioned below. - I am trying to compare the values of Column1 of File1 with Column1 of File2. If a match is found, print the corresponding value from Column2 of File1 in Column5 of File2. - I tried to modify and use... (10 Replies)
Discussion started by: Santoshbn
10 Replies

9. Shell Programming and Scripting

Find and compare values from different txt files

Hello, i am new in Bash. Actually i have a directory : /home/resultfiles and inside i have these txt files: 531_1.out.res, 531_2.out.res , 531_3.out.res 532_1.out.res, 532_2.out.res , 532_3.out.res 533_1.out.res, 533_2.out.res, 533_3.out.res All these txt files has this format : num_q all... (3 Replies)
Discussion started by: nimpoura
3 Replies

10. Shell Programming and Scripting

Compare two files column values using awk

Judi # cat File1 judi /export/home 76 judi /usr 83 judi # judi # cat File2 judi /export/home 79 judi /usr 82 judi # if COLUMN3 of File2 is greater that COLUMN3 of File1, then print File2's lines juid /export/home 79 Code tags please (2 Replies)
Discussion started by: judi
2 Replies
FP2HDF(1)						      General Commands Manual							 FP2HDF(1)

NAME
fp2hdf - convert floating point data to HDF SYNOPSIS
fp2hdf -h[elp] fp2hdf infile [infile...] -o[utfile outfile] [-r[aster] [ras_options...]] [-f[loat]] DESCRIPTION
fp2hdf converts floating point data to HDF Scientific Data Set (SDS) and/or 8-bit Raster Image Set (RIS8) format, storing the results in an HDF file. The image data can be scaled about a mean value. Input file(s) contain a single two-dimensional or three-dimensional floating point array in either ASCII text, native floating point, or HDF SDS format. If an HDF file is used for input, it must contain an SDS. The SDS need only contain a dimension record and the data, but if it also contains maximum and minimum values and/or scales for each axis, these will be used. If the input format is ASCII text or native floating point, see "Notes" below on how it must be organized. OPTIONS
-h[elp] Print a helpful summary of usage, and exit. -o[utfile] outfile Data from one or more input files are stored as one or more data sets and/or images in one HDF output file, outfile. -r[aster] Store output as a raster image set in the output file -f[loat] Store output as a scientific data set in the the output file. This is the default if the "-r" option is not specified. ras_opts: -e[xpand] horiz vert [depth] Expand float data via pixel replication to produce the image(s). horiz and vert give the horizontal and vertical resolution of the image(s) to be produced; and optionally, depth gives the number of images or depth planes (for 3D input data). -i[nterp] horiz vert [depth] Apply bilinear, or trilinear, interpolation to the float data to produce the image(s). horiz, vert, and depth must be greater than or equal to the dimensions of the original dataset. -p[alfile] palfile Store the palette with the image. Get the palette from palfile; which may be an HDF file containing a palette, or a file containing a raw palette. -m[ean] mean If a floating point mean value is given, the image will be scaled about the mean. The new extremes (newmax and newmin), as given by: newmax = mean + max(abs(max-mean), abs(mean-min)) newmin = mean - max(abs(max-mean), abs(mean-min)) will be equidistant from the mean value. If no mean value is given, then the mean will be: 0.5 * (max + min) INPUT
If the input file format is ASCII text or native floating point, it must have the following input fields: format nplanes nrows ncols max_value min_value [plane1 plane2 plane3 ...] row1 row2 row3 ... col1 col2 col3 ... data1 data2 data3 ... ... Where: format Format designator ("TEXT", "FP32" or "FP64"). nplanes Dimension of the depth axis ("1" for 2D input). nrows Dimension of the vertical axis. ncols Dimension of the horizontal axis. max_value Maximum data value. min_value Minimum data value. plane1, plane2, plane3, ... Scales for depth axis. row1, row2, row3, ... Scales for the vertical axis. col1, col2, col3, ... Scales for the horizontal axis. data1, data2, data3, ... The data ordered by rows, left to right and top to bottom; then optionally, ordered by planes, front to back. For FP32 and FP64 input format, format, nplanes, nrows, ncols, and nplanes are native integers; where format is the integer repre- sentation of the appropriate 4-character string (0x46503332 for "FP32" and 0x46503634 for "FP64"). The remaining input fields are composed of native 32-bit floating point values for FP32 input format, or native 64-bit floating point values for FP64 input format. EXAMPLE
Convert floating point data in "f1.txt" to SDS format, and store it as an SDS in HDF file "o1": fp2hdf f1.txt -o o1 Convert floating point data in "f2.hdf" to 8-bit raster format, and store it as an RIS8 in HDF file "o2": fp2hdf f2.hdf -o o2 -r Convert floating point data in "f3.bin" to 8-bit raster format and SDS format, and store both the RIS8 and the SDS in HDF file "o3": fp2hdf f3.bin -o o3 -r -f Convert floating point data in "f4" to a 500x600 raster image, and store the RIS8 in HDF file "o4". Also store a palette from "palfile" with the image: fp2hdf f4 -o o4 -r -e 500 600 -p palfile Convert floating point data in "f5" to 200 planes of 500x600 raster images, and store the RIS8 in HDF file "o5". Also scale the image data so that it is centered about a mean value of 10.0: fp2hdf f5 -o o5 -r -i 500 600 200 -m 10.0 SEE ALSO
hdf(5) October 30, 1999 FP2HDF(1)
All times are GMT -4. The time now is 03:11 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy