bash脚本逐行读取然后打印一行

时间:2013-11-23 10:42:11

标签: bash shell mergesort

我有一个超过10000行的文本文件,并使用此代码分隔一些内容:

BS=`cat myfile | grep myword`  
cutbs=`cut -d'=' -f2 $BS | sort -u
$cat cutbs  
qwe  
asd  
zxc

现在我想在一行中打印这种类型的输出:

$cat cutbs  
qwe asd zxc

2 个答案:

答案 0 :(得分:2)

您只需使用paste -s

即可
cut -d'=' -f2 $BS | sort -u | paste -s

Sun OS版本:

cut -d'=' -f2 $BS | sort -u | paste -s -

请参阅:

$ cat tubs 
qwe  
asd  
zxc
$ cat tubs | paste -s -
qwe     asd     zxc

项目以制表符分隔,但您可以选择分隔符。带空格的示例:

$ cat tubs 
qwe  
asd  
zxc
$ cat tubs | paste -s -d' ' -
qwe asd zxc

谨防你的例子:

cutbs=`cut -d'=' -f2 $BS | sort -u`

创建一个变量,然后运行

$cat cutbs

输出与$cutbs

完全无关的文件内容

答案 1 :(得分:0)

您可以使用sed:

$ cat $cutbs | sed -n -e ':start $!{N;s/\n/ /;t start;};P;D;'

或者tr:

$ cat $cutbs | tr '\n' ' '