2014-03-30 97 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