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
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)
:(
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)
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)
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)
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)
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)
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)
- 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)
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)
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
LEARN ABOUT CENTOS
tee
TEE(1) User Commands TEE(1)NAME
tee - read from standard input and write to standard output and files
SYNOPSIS
tee [OPTION]... [FILE]...
DESCRIPTION
Copy standard input to each FILE, and also to standard output.
-a, --append
append to the given FILEs, do not overwrite
-i, --ignore-interrupts
ignore interrupt signals
--help display this help and exit
--version
output version information and exit
If a FILE is -, copy again to standard output.
GNU coreutils online help: <http://www.gnu.org/software/coreutils/> Report tee translation bugs to <http://translationproject.org/team/>
AUTHOR
Written by Mike Parker, Richard M. Stallman, and David MacKenzie.
COPYRIGHT
Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
SEE ALSO
The full documentation for tee is maintained as a Texinfo manual. If the info and tee programs are properly installed at your site, the
command
info coreutils 'tee invocation'
should give you access to the complete manual.
GNU coreutils 8.22 June 2014 TEE(1)