输出到文件时shell新行出现问题

输出到文件时shell新行出现问题,shell,Shell,当我想将几个变量输出到shell中的txt文件时,我遇到了一个问题。我希望它们在一行中,但在第一个和第三个变量之后出现换行符。我举个例子 for s in `ls $TESTDIR/results_orig.txt` do t_a=(`grep " a" $s`); t_b=(`grep "Bytes written to file: " $s`); t_c=(`grep " Total Time:" $s`); t

当我想将几个变量输出到shell中的txt文件时,我遇到了一个问题。我希望它们在一行中,但在第一个和第三个变量之后出现换行符。我举个例子

for s in `ls $TESTDIR/results_orig.txt`
    do 
        t_a=(`grep "    a" $s`);
        t_b=(`grep "Bytes written to file: " $s`);
        t_c=(`grep " Total Time:" $s`);
        t_d=(`grep "QP                           " $s`);

        a=${t_a[2]};
        b=${t_b[4]};
        c=${t_c[3]};    
        d=${t_d[2]};

        echo "$a $b $c $d" >> $TESTDIR/results.txt;
    done
我得到了变量t_a到t_d,这是在我解析原始txt文件以在其中找到一些值之后得到的。然后我想找到一些数字,把它们写在文件中,而不需要原始文件中的其他文本。我希望它将这些解析后的数字写在新文件的一行中,比如

13.2 1678 3231.5 2422.1

我得到

13.2
1678 3231.5
2422.1

当我将任何变量单独回显到控制台时,我得到了正确的值。所以变量被解析得很好。有什么不对劲吗


谢谢。

什么是“t_*”变量值?您能检查数据本身是否包含新行吗?1)请使用
$()
而不是'2)请使用
awk
3)您不需要
在第四行的末尾,你用什么shebang?我用#/bin/bash在为变量赋值时,可以修剪新行。比如-t_a=(
grep“a”$s | tr-d'\n
)。看看这是否有帮助。