Visit Our UNIX and Linux User Community


Multiple file input


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Multiple file input
# 1  
Old 01-15-2014
Multiple file input

Once a time, I did see a way to multiply a file input in bash, but have forgotten how it was done.

Eks.
Code:
awk 'FNR==NR {a[$1]++;next} ($2 in a) {print $2}' file file

Here you need file two times.
I seen it some like this
Code:
awk 'FNR==NR {a[$1]++;next} ($2 in a) {print $2}' 2&file

# 2  
Old 01-15-2014
You seem to have already answered your question, what would you like from us? That is awk, not bash, by the way.
# 3  
Old 01-15-2014
researched something similar

I was just looking into this. What I've found is the following:

Code:
awk 'NR==FNR{a[$1];next}$1 in a{print $1}' F1 F2

NR==FNR -- this will only be true when in the first file
a[$1] use the first column to make array of file
next skip all the next blocks and process the next line
($1 in a) check in value in column on of second file
then print it

Code:
gawk 'FNR==NR {a[$1]++;next} ($2 in a) {print $2}'

So this is NR==FNR same as above
a[$1] s same as above
$2 in a -- is column $2 in the array of second file? then print it
# 4  
Old 01-15-2014
@Corona688
This does not work, it gives me:
Code:
awk 'FNR==NR {a[$1]++;next} ($2 in a) {print $2}' 2&file
[1] 7183
awk: cmd. line:1: fatal: cannot open file `2' for reading (No such file or directory)
t: command not found
[1]+  Exit 2                  awk 'FNR==NR {a[$1]++;next} ($2 in a) {print $2}' 2

2&file would be some like this. Run awk with file name 2, and if ok, the run command file
I would like to substitute file file with some that returns file two or more in on go.

@newbie2010
My awk does compare first and second column, and if equal print what is equal.
It does not care what row its in, just compare every number anywhere in the column.

Last edited by Jotne; 01-15-2014 at 02:20 PM..
# 5  
Old 01-15-2014
-- deleted--
# 6  
Old 01-15-2014
Quote:
Originally Posted by Jotne
@Corona688
This does not work, it gives me:
[CODE]awk 'FNR==NR {a[$1]++;next} ($2 in a) {print $2}' 2&file
[1] 7183
awk: cmd. line:1: fatal: cannot open file `2' for reading (No such file or directory)
Well, it means what it says... There's no file named '2'. If you want to give it some other, more valid filename, you are free to do so.

It takes the & to mean 'run this command in background and take the text after as a new command'.

Quote:
I would like to substitute file file with some that returns file two or more in on go.
I do not understand this. If you want awk to read the file twice, you tell it the file twice; that's how it works. But I don't think your question is crossing the language barrier very well.
# 7  
Old 01-15-2014
Post files

Do you have a couple files with output? Files before you run the command, and what you expect after?

Also, I've noticed that on my system a lot of what runs for others with awk only works with gawk for me. Have you tried gawk?

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Removing multiple lines from input file, if multiple lines match a pattern.

GM, I have an issue at work, which requires a simple solution. But, after multiple attempts, I have not been able to hit on the code needed. I am assuming that sed, awk or even perl could do what I need. I have an application that adds extra blank page feeds, for multiple reports, when... (7 Replies)
Discussion started by: jxfish2
7 Replies

2. Shell Programming and Scripting

Avoid overwriting backup file when multiple entries need to replace in one file input from another

Hello, I have been working on script in which search and replace the multiple pattern. 1. update_params.sh read the multiple pattern from input file ParamMapping.txt(old_entry|New_entry) and passing this values one by one to change_text.sh 2. change_text.sh read... (0 Replies)
Discussion started by: ketanraut
0 Replies

3. Shell Programming and Scripting

Copying a file to multiple other files using a text file as input

Hello, I have a file called COMPLIST as follows that contains 4 digit numbers.0002 0003 0010 0013 0015 0016 0022 0023 0024 0025 0027 0030 0031 0032 0033 0035 0038 0041 (3 Replies)
Discussion started by: sph90457
3 Replies

4. Shell Programming and Scripting

How to ftp multiple files by taking the file name from a input file.

Hi, I'm working on a script which has to copy multiple files from one server to another server. The list of files that are to be copied is present in a file say input.txt. vi input.txt abc.c welcome.c new.c welcome1.c for ftp'ing a single file say 'new.c' the following code... (2 Replies)
Discussion started by: i.srini89
2 Replies

5. Shell Programming and Scripting

Split a file into multiple files based on the input pattern

I have a file with lines something like. ...... 123_start ...... ....... 123_end .... ..... 456_start ...... ..... 456_end .... ..... 789_start .... .... 789_end (6 Replies)
Discussion started by: abinash
6 Replies

6. Shell Programming and Scripting

Create Multiple files by reading a input file and changing the contents

Being new to this area .I have been assigned a task which i am unable to do . Can any one please help me . Hi I have requirement where i have input file XYZ_111_999_YYYYMMDD_1.TXT and with header and series of Numbers and Footer. I want to create a mutiple output files with each file having a... (2 Replies)
Discussion started by: bhargavkr
2 Replies

7. Shell Programming and Scripting

building output file from multiple input files

Hi there, I am trying to figure out a way to combine multiple sources with different data on a single file, and I am trying to find the best way to do it. I have multiple files, let's say A, B, C and D. A has a field in common with B, B has a field in common with C, and C has a field in... (2 Replies)
Discussion started by: ppucci
2 Replies

8. Shell Programming and Scripting

isql input file with multiple sql statements

I've got: isql -U $USERID -S $SERVER -D $DATABASE -i inputfile.sql -o outputfile.txt in inputfile I have: go sql#1 go sql#2 go sql#3 go I also tried without "go" and with";" instead which did not work SQL statements will work if I paste them directly into the script and use EOF ... (0 Replies)
Discussion started by: Cailet
0 Replies

9. Programming

Multiple scanners on same input file using lex/flex

Hi all, I'm working with flex (version 2.5.4a) on GNU/linux. I used it to develop 4 scanner C files for matching different patterns within an input file. But the problem now on my hand is that I need to conditionally combine these. That is in main (placed in a separate C file other than the 4... (5 Replies)
Discussion started by: Rakesh Ranjan
5 Replies

10. Shell Programming and Scripting

Can Xargs execute multiple commands of evry input file

Hello , I am trying to print the footer of evry file in the given directory with xargs command like follows ls -1 | xargs -I {} gzcat {} | tail -1 now problem with this is only last file foooter is getting printed as " | tail -1 " is getting executed for the last file. I know this can... (4 Replies)
Discussion started by: nilesrex
4 Replies

Featured Tech Videos