2014-03-30 61 views
0

我正在运行一个shell脚本,它读取文件的某些列并将其写入csv文件。就像汇编两个文件中的记录一样。将输出重定向到屏幕而不是csv文件

#!/bin/ksh 

while read -r a1 a2 a3 && read -r b1 b2 b3 <&3; do 
echo $a2 $a3 $b1 $b2 
done <account_info.csv 3<Error.csv > output.csv 
echo "extraction is done" 

现在在output.csv文件中完成编译后,我想在“提取完成”屏幕上打印消息。但相反,该消息正在打印在output.csv文件中。 “>”运算符输出的这种行为是否有任何原因。 请帮忙把输出信息传到屏幕上。

+0

疗法e没有理由将_extraction完成_写入文件。这是你的完整脚本吗? – devnull

+1

你是如何运行脚本的。喜欢这个 ? './script.sh> output.csv' – iamsleepy

+0

test.ksh是我正在运行的脚本的名称。我创建了一个.ksh文件并在腻子中运行它。它的发生和我感到无助。 – 10hero

回答

0

此脚本工作:

#!/bin/ksh 
IFS=',' 
while read -r a1 a2 a3 && read -r b1 b2 b3 <&3 
do 
    echo "${a2},${a3},${b1},${b2}" 
done < a.csv 3<b.csv> output.csv 
echo 'extraction is done' 

测试文件:

$ cat a.csv 
a1,a2,a3 
$ cat b.csv 
b1,b2,b3 

运行:

$ ./test.ksh 
extraction is done 
$ cat output.csv 
a2,a3,b1,b2 

KSH:

$ ksh --version 
version   sh (AT&T Research) 93u+ 2012-02-29