将输出重定向到屏幕而不是csv文件

时间:2014-03-30 18:01:04

标签: shell unix csv while-loop echo

我正在运行一个shell脚本,它从文件中读取一些列并将其写入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文件中。 “&gt;”输出的这种行为是否有任何原因运营商。 请帮助将输出消息输出到屏幕。

1 个答案:

答案 0 :(得分: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