Chinaunix首页 | 论坛 | 博客
  • 博客访问: 56759
  • 博文数量: 28
  • 博客积分: 84
  • 博客等级: 民兵
  • 技术积分: 162
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-09 17:47
个人简介

try vuuv.github.io or somewhere else.

文章分类

全部博文(28)

文章存档

2013年(1)

2012年(5)

2011年(22)

我的朋友

分类:

2011-10-07 14:56:51

原文地址:awk之列的横向打印 作者:zooyo

文本:
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             239G  7.8G  219G   4% /
/dev/sda1              99M  9.9M   84M  11% /boot
tmpfs                1013M     0 1013M   0% /dev/shm
/dev/sda2              49G  5.5G   41G  12% /home
/dev/sdb5             917G  9.9G  861G   2% /data
 
要把第1列和第2列横向打印得到结果:
Filesystem: /dev/sda5 /dev/sda1 tmpfs /dev/sda2 /dev/sdb5
Size: 239G 99M 1013M 49G 917G
 
 
 
  1. awk 'NR==1{i=$1":";j=$2":";next}{i=i FS $1;j=j FS $2}END{print i RS j}' file
[解析]
  只有按NR一行一行的累加赋值给一个变量,最后在打印出这2个变量的值。
 
 
 
  1. awk '{a[NR]=$1;b[NR]=$2}END{printf a[1]":";for(i=2;i<=NR;i++)printf a[i] FS;printf RS;printf b[1]":";for(i=2;i<=NR;i++)printf b[i] FS;printf RS }' file
[解析]
  数组保存,再取出元素打印。

 
阅读(817) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~