how to redirect multiple input files?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to redirect multiple input files?
# 1  
Old 09-26-2009
how to redirect multiple input files?

I have a program that runs like "cat f1 - f2 -", I need to write shell script to run the program whose standard input will be redirected from 2 files. I spend a whole day on it, but didn't figure out. Can someone help me out? Thanks!
# 2  
Old 09-26-2009
not exactly sure what your requirement is, but it sounds like:

redirect standard in from 2 files _at the same time_ to a single process

that is done like this:
Code:
cat f1 f2|process

or this
Code:
process<cat f1 f2

'cat' concatenates the files, so this is nearly equivalent to the following:

Code:
process < f1
process < f2

# 3  
Old 09-26-2009
Quote:
Originally Posted by varontron
not exactly sure what your requirement is, but it sounds like:

redirect standard in from 2 files _at the same time_ to a single process

that is done like this:
Code:
cat f1 f2|process

or this
Code:
process<cat f1 f2

'cat' concatenates the files, so this is nearly equivalent to the following:

Code:
process < f1
process < f2

Thanks for your reply. But it still does not work. It says "cat: No such file or directory".
My program command can run like this: "./a.out file1.txt - file2.txt -", when the parameter is a file name, it will read file content, otherwise, when the parameter is a hyphen, it will read from stdin(just like "cat file1 - file2 -"). I need write a test script to run this program, however, I don't know how to redirect two file for stdin. Anybody can help me? Thanks.
# 4  
Old 09-26-2009
can you post your script?

the error means that one of the arguments you are passing to 'cat' is not a file, or doesn't exist on the path you've indicated--however without seeing how you are calling 'cat' in your script, I can only speculate.
# 5  
Old 09-26-2009
Quote:
But it still does not work. It says "cat: No such file or directory".
the code you have is treating cat as a file name.
Code:
process<cat f1 f2

to use this method you will need to do it in two steps
Code:
cat f1 f2 >/tmp/foo
process</tmp/foo

Quote:
My program command can run like this: "./a.out file1.txt - file2.txt -", when the parameter is a file name, it will read file content, otherwise, when the parameter is a hyphen, it will read from stdin(just like "cat file1 - file2 -"). I need write a test script to run this program, however, I don't know how to redirect two file for stdin. Anybody can help me? Thanks.
I don't really understand the requirements so I am not sure how to provide a solution. Having parameters like <file1> <-> <file2> <-> just does not seem right. What is the end result you are looking for?
# 6  
Old 09-26-2009
Quote:
Originally Posted by varontron
Code:
process<cat f1 f2


You cannot redirect from a command with <; the argument must be a file.

If your shell has process substitution, you can do:

Code:
process < <(cat f1 f2)

Or use a here document:

Code:
process <<.
$( cat f1 f2 )
.

# 7  
Old 09-26-2009
good point cfa. thx.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

[Solved] Multiple input files and output files

Hi, I have many test*.ft1 files to which I want to read as input for a script called pipe2txt.tcl and print the output in each separate file. For example, pipe2txt.tcl < test001.ft1 > test001.txt How can I read many files in this maner? thank you very much, Best, Pahuja (5 Replies)
Discussion started by: Pahuja
5 Replies

2. Shell Programming and Scripting

awk, multiple files input and multiple files output

Hi! I'm new in awk and I need some help. I have a folder with a lot of files and I need that awk do something in each file and print a new file with the output. The input file name should be modified when I print the outpu files. Thanks in advance for help! :-) ciao (5 Replies)
Discussion started by: gabrysfe
5 Replies

3. Shell Programming and Scripting

Receiving 'ambiguous redirect' when trying to run command against multiple files

I came across the command string on https://www.unix.com/shell-programming-scripting/141885-awk-removing-data-before-after-pattern.html which was what I was looking for to be able to remove data before a certain pattern. However, outputting the result to a file seems to work on an individual basis... (4 Replies)
Discussion started by: HLee1981
4 Replies

4. Shell Programming and Scripting

find string from multiple dir and redirect to new files

Hi, I am new to script and I want find one string from multiple files in diff directories and put that out put to new file. Like I have A,B & C directories and each has multiple files but one file is unic in all the directories like COMM.txt Now I want write script to find the string... (8 Replies)
Discussion started by: Mahessh123
8 Replies

5. UNIX for Dummies Questions & Answers

Redirect stdin stdout to multiple files

Hi, i know how to a) redirect stdout and stderr to one file, b) and write to two files concurrently with same output using tee command Now, i want to do both the above together. I have a script and it should write both stdout and stderr in one file and also write the same content to... (8 Replies)
Discussion started by: ysrini
8 Replies

6. Shell Programming and Scripting

How to Pull out multiple files from DB table and redirect all those files to a differetn directory?

Hi everyone!! I have a database table, which has file_name as one of its fields. Example: File_ID File_Name Directory Size 0001 UNO_1232 /apps/opt 234 0002 UNO_1234 /apps/opt 788 0003 UNO_1235 /apps/opt 897 0004 UNO_1236 /apps/opt 568 I have to... (3 Replies)
Discussion started by: ss3944
3 Replies

7. Shell Programming and Scripting

How to redirect the output to multiple files without putting on console

How to redirect the output to multiple files without putting on console I tried tee but it writes to STDOUT , which I do not want. Test.sh ------------------ #!/bin/ksh echo "Hello " tee -a file1 file2 ---------------------------- $>./Test.sh $> Expected output: -------------------... (2 Replies)
Discussion started by: prashant43
2 Replies

8. Shell Programming and Scripting

Splitting input files into multiple files through AWK command

Hi, I needs to split *.txt files from single directory depends on the some mutltiple input values. i have wrote the code like below for file in *.txt do grep -i -h "value1|value2" $file > $file; done. My requirment is more input values needs to be given in grep; let us say 50... (3 Replies)
Discussion started by: arund_01
3 Replies

9. UNIX for Dummies Questions & Answers

can you redirect multiple files for input?

I have a program that is reading strings into a vector from a file. Currently I am using this command: a.out < file1 The program runs and prints the contents of the vector to the screen, like its supposed to. The problem is that it needs to read in 3 files to fill the vector. Is there anyway... (4 Replies)
Discussion started by: Matrix_Prime
4 Replies

10. UNIX for Dummies Questions & Answers

Redirect output to multiple files.

Hi, I am new to shell scripting and have a question. I would like to redirect the output of a command to multiple files, each file holding the exact same copy. From what I read from the bash manpage and from some searching it seems it cannot be done within the shell except setting up a loop. Is... (3 Replies)
Discussion started by: cbkihong
3 Replies
Login or Register to Ask a Question