特定的分隔符,用于将数据分隔为列

时间:2013-01-08 15:33:32

标签: linux shell ubuntu awk

我有一组数据名称Book.txt,我想在shell中显示它们。但是我在尝试使用特定分隔符

在列中对数据进行分组时遇到问题

Book.txt包含:

Harry Potter 1:Author1:100
Lord Of The Rings:Author2:200

我能够使用以下代码在Book.txt中显示数据:

awk -F':' '{print $1 "\t" $2}' ./Book.txt 

但是我希望它们能够很好地安排在列中,所以我尝试使用管道列

awk -F':' '{print $1 "\t" $2}' ./Book.txt | column -s "/t"

但是当我尝试它时,它似乎无法工作。我不能使用列-t,因为我的标题有空格,它充当分隔符。我想用'tab'代替我的分隔符

2 个答案:

答案 0 :(得分:5)

您可以直接使用column命令吗?

column -s ":" -t Book.txt

结果:

Harry Potter 1     Author1  100
Lord Of The Rings  Author2  200

答案 1 :(得分:1)

这说明了标题和删除最后一列:

$ cat file 
Book Header
Harry Potter 1:Author1:100
Lord Of The Rings:Author2:200

$ awk -F':' -v OFS=':' '{print $1, $2}' file | column -s: -t
Book Header
Harry Potter 1     Author1
Lord Of The Rings  Author2