2014-04-13 56 views
2

我想输出的fileA和FILEB如下:能够读取两个文件同时

fileA: a b c d e 
fileB: 1\t2\t3\ta b c d e 
fileA: f g h i j 
fileB: 4\t5\t6\tf g h i j 
fileA: k l m n o 
fileB: 7\t8\t9\tk l m n o 

然而,我的脚本输出如下(我想不通为什么):

fileA: a b c d e 
fileB: 1\t2\t3\ta b c d e\n1 2 3 a b c d e 
fileA: f g h i j 
fileB: 4\t5\t6\tf g h i j\n4 5 6 f g h i j 
fileA: k l m n o 
fileB: 7\t8\t9\tk l m n o\n7 8 9 k l m n o 

的fileA:

a b c d e 
f g h i j 
k l m n o 

FILEB:

1<tab>2<tab>3<tab>a b c d e 
4<tab>5<tab>6<tab>f g h i j 
7<tab>8<tab>9<tab>k l m n o 

script.sh:

#!/bin/bash 

while : 
do 
    read A <&3 
    read B <&4 
    [ -z "${A}" -a -z "${B}" ] && break 
    echo "fileA: ${A}" 
    echo "fileB: ${B}" 
done 3<fileA 4<fileB 

注意<tab>是指在文件中的实际标签。

+1

它适用于我 – anubhava

+0

它也适用于我。你的一个文件是否有有趣的结尾? – merlin2011

+0

如果任一文件已通过基于Windows的系统传递,则最好使用'dos2unix file [file2 ....]'将行结束符转换为Unix格式。祝你好运。 – shellter

回答

0

尝试阅读这样的:

read -u 3 A 
read -u 4 B 
+0

我仍然有这样的阅读行为。 – user1145925

0

事实证明我是个白痴。 while循环中有一个额外的echo语句(我忘记在我的代码中注释掉)。

相关问题