Sed命令在执行后插入新行 - 如何避免?

时间:2014-05-15 11:42:46

标签: unix sed

我正在尝试将一行从一个文件复制到另一个文件,然后将字符添加到同一行。

cat $INDIR/files |
while read
do
sed -n 27p $INDIR/files >> $OUTDIR/files
for i in {1..6} ; do echo -n '0.000000e+00 '; done >> $OUTDIR/files
done

它应该是这样的:

copied text 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 

但它看起来像这样:

copied text
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00

如何避免添加到输出中的换行符?

1 个答案:

答案 0 :(得分:3)

尝试一下:

将您的sed行更改为:

awk 'NR==27{printf "%s ", $0}' $INDIR/files >> $OUTDIR/files

如@devnull所评论,您也可以这样做:

sed .... |tr '\n' ' ' >>$OUTDIR/files