源:

218.104.69.100                    218.104.69.100                    安徽合肥
218.104.69.99 218.104.69.99 安徽合肥
61.190.72.38 61.190.72.38 安徽合肥
61.190.75.3 61.190.75.3 安徽合肥
61.190.75.6 61.10.75.6 安徽合肥
166.111.172.198 166.111.172.198 北京
166.111.172.199 166.111.173.25 北京
1.8.3.3 3.3.3.3 江苏南京
210.28.128.0 210.28.129.255 江苏南京
23.23.23.23 33.33.33.33 江苏南京
3.3.3.3 2.2.2.33 江苏南京
3.3.3.3 2.2.22.33 江苏南京
3.3.3.3 2.33.22.33 江苏南京
3.3.3.3 22.33.22.33 江苏南京 我想把它变成: 218.104.69.100 :218.104.69.100 :安徽合肥
218.104.69.99 :218.104.69.99 :安徽合肥
61.190.72.38 :61.190.72.38 :安徽合肥
61.190.75.3 :61.190.75.3 :安徽合肥
61.190.75.6 :61.10.75.6 :安徽合肥
166.111.172.198:166.111.172.198:北京
166.111.172.199:166.111.173.25 :北京
1.8.3.3 :3.3.3.3 :江苏南京
210.28.128.0 :210.28.129.255 :江苏南京
23.23.23.23 :33.33.33.33 :江苏南京
3.3.3.3 :2.2.2.33 :江苏南京
3.3.3.3 :2.2.22.33 :江苏南京
3.3.3.3 :2.33.22.33 :江苏南京
3.3.3.3 :22.33.22.33 :江苏南京 说明:
1、不要管中文汉字的第三列有多少个字符串(可能很多个)
2、只管前两列上面字符串最小的3.3.3.3 最大的166.111.172.198 (只是举例,明白意思就行了)
3、前两列最大的字符串后面紧跟冒号,其余达不到最大字符串数量的加空格填充

我的想法是,先遍历第一列和第二列,取出两列各自字符串的最大长度,然后格式化最大长度的宽度即可。

[root]$ cat replacespace  | awk -v i= 'BEGIG{maxlen=0;maxlen2=0;i=0}{if(maxlen<length($1)){maxlen=length($1)};if(maxlen2<length($2)){maxlen2=length($2)};arr1[i]=$1;arr2[i]=$2;arr3[i]=$3;i++} END{for(j=0;j<i;j++) {printf("%-"maxlen"s%s%-"maxlen2"s%s%s\n",arr1[j],":",arr2[j],":",arr3[j])} }'
218.104.69.100 :218.104.69.100 :安徽合肥
218.104.69.99 :218.104.69.99 :安徽合肥
61.190.72.38 :61.190.72.38 :安徽合肥
61.190.75.3 :61.190.75.3 :安徽合肥
61.190.75.6 :61.10.75.6 :安徽合肥
166.111.172.198:166.111.172.198:北京
166.111.172.199:166.111.173.25 :北京
1.8.3.3 :3.3.3.3 :江苏南京
210.28.128.0 :210.28.129.255 :江苏南京
23.23.23.23 :33.33.33.33 :江苏南京
3.3.3.3 :2.2.2.33 :江苏南京
3.3.3.3 :2.2.22.33 :江苏南京
3.3.3.3 :2.33.22.33 :江苏南京
3.3.3.3 :22.33.22.33 :江苏南京

【shell】awk格式对齐文本的更多相关文章

  1. Shell awk文本处理,shell脚本编写

    Shell awk文本处理,shell脚本编写 一:内容包含awk.变量.运算符.if多分支 <a>语法糖: awk [options] 'commands' files option - ...

  2. 转 shell awk 使用详解

    awk简介 awk: 中文意思是报告生成器 能够根据我们输入的信息,将信息格式化以后显示,将定义好的信息以比较美观(直观)的方式显示出来出现比较早,继而出现了new awk(nawk)在windows ...

  3. [转]shell awk 入门,中级,高级使用

    awk很常用,对于我们在shell中分析log和file很有好处,很实用的东西,大家一起分享学习- 作为技术支持工程师,我们最最经常的工作就是要处理文本文件,不管是什么数据库最后都可以导成文本,我们就 ...

  4. 使用awk格式化输出文本

    注意:本文并不是一篇awk入门文章,而是偏重实例讲解 awk借鉴了c语法,因此awk在许多地方还保留有c语言的痕迹,比如printf语句:for,if的语法结构等 介绍 最简单地说,AWK 是一种用于 ...

  5. Linux Shell 自动化之让文本飞

    Linux Shell 自动化之让文本飞 一.前言: ​ 作者之前在一家 IDC 从事运维兼职工作,后来因某些原因辞职开始 Python 爬虫数据分析.因为这些经历以及后续时间积累下的经验,发现好像自 ...

  6. [19/06/06-星期四] HTML基础_文本标签、列表(有序、无序、定义)、文本格式化(单位、字体、大小写、文本修饰、间距、对齐文本)

    一.文本标签 em:用来表示一段内容的着重点,语气上的强调.一般显示为斜体 i:是斜体显示,和em显示效果一样.h5规定不需要着重的内容而是单纯加粗或斜体可以用i或b.用的不多 strong:用来表示 ...

  7. shell awk

    #!/bin/bash # ;i<=;i++)); # do # c1=`shuf -i - -n ` #生成随机数 # c2=`shuf -i - -n ` # c3=`shuf -i - - ...

  8. python string 对齐文本的几个方法

    用rjust().ljust()和center()方法对齐文本

  9. POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】

    实际开发过程中通常用到的就是从数据库导出EXCEL表格了,JXL可以这样做,其实POI也可以(关于JXL与POI的异同可访问我之前总结的文章),之前写过POI对七种文档(当然也包括EXCEL)的内容读 ...

随机推荐

  1. 【FICO系列】SAP 参数(条件表)灵活配置GS01/GS02/GS03

      公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP 参数(条件表)灵活配 ...

  2. 剑指OFFER数据结构与算法分类

    目录 数据结构 算法 数据结构 数组 有序二维数组查找 数组相对位置排序 数组顺时针输出 把数组排成最小的数 数组中的逆序对 扑克牌顺子 数组中重复的数字 构建乘积数组 链表 链表反向插入ArrayL ...

  3. html+css实现奥运五环(环环相扣)

    <!DOCTYPE html> <html> <head> <title>奥运五环</title> <style type=" ...

  4. 【VS开发】【图像处理】双边滤波器bilateral filter

    目录(?)[-] 简介 原理 代码实现 1 Spatial Weight 2 Similarity Weight 3 Color Filtering 在SSAO中的使用 1. 简介 图像平滑是一个重要 ...

  5. discuz 设置

    veikei_dz_com_20120821_gray_free 模板  论坛 瀑布流 需要在后台设置  论坛--板块管理--编辑对应板块--扩展设置--开启图片列表模式 FAQ 帮助页面 在后台管理 ...

  6. [题解][洛谷]_U75702/P5462_X龙珠_论何为字典序

    赛时嫌麻烦,没写 赛后自闭了,写了一下午 题目描述 “X龙珠”是一款益智小游戏.游戏中有 n(2|n)n(2∣n) 个编号互不相同龙珠按照给定的顺序排成一个队列,每个龙珠上面都有一个编号.每次操作时, ...

  7. 原生js:click和onclick本质的区别(转https://www.cnblogs.com/web1/p/6555662.html)

    原生javascript的click在w3c里边的阐述是DOM button对象,也是html DOM click() 方法,可模拟在按钮上的一次鼠标单击. button 对象代表 HTML 文档中的 ...

  8. 重写移动端滚动条[iScroll.js核心代码]

    最近写组件库的时后,发现这个滚动条是真的丑啊,决定重新撸一个滚动条: 首先咱们回顾一下移动端浏览器滚动条特性: 滚动条在开始滚动时渐显,滚动结束后渐隐 滚动条不占内容区宽度,悬浮固定 滚动条高度(深灰 ...

  9. springmvc中的数据传递

    import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; impo ...

  10. springmvc中的参数接收

    import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import ...