【发布时间】:2013-12-08 07:18:50
【问题描述】:
我有一个超过 10000 行的文本文件,并使用此代码来分隔一些内容:
BS=`cat myfile | grep myword`
cutbs=`cut -d'=' -f2 $BS | sort -u
$cat cutbs
qwe
asd
zxc
现在我想在一行中打印这种类型的输出,如下所示:
$cat cutbs
qwe asd zxc
【问题讨论】:
我有一个超过 10000 行的文本文件,并使用此代码来分隔一些内容:
BS=`cat myfile | grep myword`
cutbs=`cut -d'=' -f2 $BS | sort -u
$cat cutbs
qwe
asd
zxc
现在我想在一行中打印这种类型的输出,如下所示:
$cat cutbs
qwe asd zxc
【问题讨论】:
你可以简单地使用paste -s:
cut -d'=' -f2 $BS | sort -u | paste -s
Sun 操作系统版本:
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完全无关
【讨论】:
你可以使用 sed:
$ cat $cutbs | sed -n -e ':start $!{N;s/\n/ /;t start;};P;D;'
或者说:
$ cat $cutbs | tr '\n' ' '
【讨论】: