Error redirection question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Error redirection question
# 1  
Old 09-15-2011
Error redirection question

Hi gurus,
I have a question, need some of your inputs...

I have a command like this :
Code:
export LINE_COUNT=`wc -l test.dat | awk '{print $1}'`

echo $LINE_COUNT         --- > gives me 2 which is fine as the file has 2 lines.

This works fine if the file test.dat is present but in case test.dat is not present (I intentionally remove the file), I want to redirect only the error to a specified error file like say test.err. For that I tried to do the following:
Code:
export LINE_COUNT=`wc -l test.dat | awk '{print $1}'` 2> test.err

I still got the error as "wc: cannot open test.dat" at the command promprt and the file test.err was empty.


I also tried :
Code:
export LINE_COUNT=`wc -l test.dat | awk '{print $1}' 2> test.err`

and I still got the error as "wc: cannot open test.dat" at the command promprt and the file test.err was empty.


My intention is only to redirect the error part of my command to a specific file say test.err and not display at the command prompt.


Hope I was clear.
Thanks for your time,
Carl

Last edited by Scott; 09-15-2011 at 04:50 PM.. Reason: Added code tags
# 2  
Old 09-15-2011
Standard error doesn't pass through pipes. It goes directly to the terminal. So redirecting the last command only redirects errors the last program prints.

Code:
command 2> errlog | command2 | command3

It's extremely wasteful to run awk to process single lines. Might be better to do this:

Code:
[ -r test.dat ] && export LINE_COUNT=`wc -l < test.dat` || echo "Can't read test.dat" >&2

Faster since it uses less processes, and the error messages can be whatever you'd like.
This User Gave Thanks to Corona688 For This Post:
# 3  
Old 09-15-2011
Redirect output of wc to test.err instead of the awk part...
Code:
export LINE_COUNT=`wc -l test.dat 2>test.err | awk '{print $1}'`

This User Gave Thanks to shamrock For This Post:
# 4  
Old 09-15-2011
Thank you v.much for your inputs... certainly it works.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Question on bash redirection

Hi, Can I get some explanation around this bash redirection? From what I have read, x < y means call the shell to redirect the output of y into x. Does this mean that this sequence of commands is executed from right to left? diff <(sort testfile.txt) <(sort testfile2.txt) Thanks, edit... (2 Replies)
Discussion started by: sand1234
2 Replies

2. Shell Programming and Scripting

Shell script output redirection question

OS : AIX 6.1 Shell : Korn in the url https://forums.oracle.com/forums/thread.jspa?threadID=361463&tstart=0 I came across a crontab entry example 00 23 * * 1,3,5 <complete shell script path> 1> <log file> 2>&1 From googling , I gathered that 0 - stdin 1 - stdout 2 - stderr I... (5 Replies)
Discussion started by: polavan
5 Replies

3. Shell Programming and Scripting

output redirection to existing file question

So I have a existing file that I used the uniq command on and I need to save the output to the same file without changing the file name. I have tried $ uniq filename > filename then when I cat the file it then becomes blank like there is nothing inside. any help would be much appreciated... (0 Replies)
Discussion started by: drew211
0 Replies

4. Shell Programming and Scripting

Redirection question

I want to redirect stderr and have the following peice of code $ cat t1.ksh #!/bin/ksh func2() { diff /tmp/jdlkwjdlkejew /tmp/djlkwejdlewdjew >$OUTPUT_FILE 2>>$ERR_FILE } func1() { let counter=0 while do print -u2 "Error: In main function" func2 let... (1 Reply)
Discussion started by: BeefStu
1 Replies

5. Shell Programming and Scripting

Question about IO redirection

for shell operators like <, >, <<, and >> do the LHS always have to be a process or device and the RHS a file or device? Is it possible for the RHS to be a process? (1 Reply)
Discussion started by: stevenswj
1 Replies

6. Shell Programming and Scripting

Redirection Question

I just wondered if I'm understanding this command line correctly cat 2>save1 0<memo | sort 2>save2 1>letter This means that stdin will read from memo and if there is an error then stderr will write to save1. Am I correct in saying that the sort command will sort the memo file and write... (2 Replies)
Discussion started by: snag49ers
2 Replies

7. Shell Programming and Scripting

BASH Problem / Question regarding redirection

Hi all, Maybe someone is able to help: Need to redirect the output of a command in realtime to a second command. Command-A executes a remote shell to another host, and outputs its results. Command-B displays a "dialog" with the outputs of Command-A. Command-A Output: Updating FileA... (2 Replies)
Discussion started by: mharald
2 Replies

8. Shell Programming and Scripting

File redirection question

Hi all, I am working with the Grinder tool (unrelated to my question) to redirect the output of a program to a file as follows: java -cp $CLASSPATH net.grinder.TCPProxy > grinder.txt This is a proxy server which pipes output to a file. When I do something on my proxy, more and more goes to... (1 Reply)
Discussion started by: Annorax
1 Replies

9. Shell Programming and Scripting

input redirection question

Hi, in my script I need to execute the following command: query $id 456 432 but it waits for a RETURN character from keyboard and therefore, it fails. I tried something like: query $id 456 432 << '\n' but, i'ts clear it is not correct. Is there any way to do this? Thxs. (0 Replies)
Discussion started by: luistid
0 Replies

10. Shell Programming and Scripting

question on redirection (<<)

I came across the following problem, where file contents are overwritten using redirection. Can somebody please explain what cat << BAR seems to be doing and say why this is a problem? Explain the contents and relation between the two filenames used before the cat command. thanks /tmp# echo... (2 Replies)
Discussion started by: newkidintown
2 Replies
Login or Register to Ask a Question