文件 内容如下

clone=line1
gb=line1
gi=line1
lib=line1
gb=line2
gi=line2
lib=line2
clone=line3
gb=line3
gi=line3
lib=line3
gb=line4
gi=line4
lib=line4

如何变为下面的内容

lib=line1 gi=line1 gb=line1 clone=line1 
lib=line2 gi=line2 gb=line2 
lib=line3 gi=line3 gb=line3 clone=line3 
lib=line4 gi=line4 gb=line4

[root@localhost 09-30]# cat file
clone=line1
gb=line1
gi=line1
lib=line1
gb=line2
gi=line2
lib=line2
clone=line3
gb=line3
gi=line3
lib=line3
gb=line4
gi=line4
lib=line4
[root@localhost 09-30]# awk '{a=$0" "a}/^lib/{print a;a=""}' file
lib=line1 gi=line1 gb=line1 clone=line1
lib=line2 gi=line2 gb=line2
lib=line3 gi=line3 gb=line3 clone=line3
lib=line4 gi=line4 gb=line4
[root@localhost 09-30]# awk '{a=$0" "a}/^lib/{print a}' file
lib=line1 gi=line1 gb=line1 clone=line1
lib=line2 gi=line2 gb=line2 lib=line1 gi=line1 gb=line1 clone=line1
lib=line3 gi=line3 gb=line3 clone=line3 lib=line2 gi=line2 gb=line2 lib=line1 gi=line1 gb=line1 clone=line1
lib=line4 gi=line4 gb=line4 lib=line3 gi=line3 gb=line3 clone=line3 lib=line2 gi=line2 gb=line2 lib=line1 gi=line1 gb=line1 clone=line1
[root@localhost 09-30]#

解题思路:awk '{a=$0" "a}/^lib/{print a;a=""}' file

上面的结果是这个地方输出的 {a=$0" "a},这个结果只是循环进行赋值,当碰到^lib开头才进行输出 a的值 ,print a;a=""   第一个a是上面循环输出的值,最后的a是把变量a重新初始化变量,为什么要初始化是因为下一次要用这个变量的时候,不能因为之前这个变量有值,影响下一次用,好让它继续下次的循环赋值。

shell脚本,awk常见初始化变量的题目。的更多相关文章

  1. shell脚本中常见的一些特殊符号和作用详解

    这篇文章主要介绍了shell脚本中常见的一些特殊符号和它的作用详解,总结的很简洁,容易看懂,需要的朋友可以参考下   在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我 ...

  2. shell脚本中特定符合变量的含义

    shell脚本中特定符合变量的含义: $#   传递到脚本的参数个数 $*    以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过9个 $$    脚本运行的当前进程PID号 ...

  3. shell脚本 awk工具

    awk工具概述awk编程语言/数据处理引擎基于模式匹配检查输入文本,逐行处理并输出通常在shell脚本中,或取指定的数据单独用时,可对文本数据做统计 命令格式格式一:awk [选项] '[条件]{编辑 ...

  4. shell脚本中一些特殊变量

    在shell脚本中,一些常见的特殊变量表示方式还是需要知道的 如下就是一些经常用到的特殊变量表示方法: $0    当前脚本名$1 $2...    传入脚本or函数的参数(大于10需大括号括起来)$ ...

  5. Shell脚本编写2------有关变量

    shell脚本中变量定义方式十分简单,直接将值赋值给变量较好例如 :name="tuanzhang"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.变量命名 ...

  6. shell脚本—基础知识,变量

    shell脚本本质: 编译型语言 解释型语言 shell编程基本过程 1.建立shell文件 2.赋予shell文件执行权限,使用chmod命令修改权限 3.执行shell文件 shell变量: sh ...

  7. Bash基础——Shell脚本内部常用环境变量

    $@和$*区别 不加引号的时候没区别 #! /usr/bin/bash function print_args_at { printf "%s\n" $@ echo $@ } fu ...

  8. shell脚本基础知识以及变量

    一.基础知识 1.shell脚本的格式注意事项 第一行(一般必须写明):指定脚本使用的shell(若不写明也不影响脚本的执行,系统会自动以sh解析脚本)."#!/bin/bash" ...

  9. shell脚本 awk实现实时监控网卡流量

    一.简介 通过第3方工具获得网卡流量,这个大家一定很清楚.其实通过脚本一样可以实现效果.下面是我个人工作中整理的数据.以下是shell脚本统计网卡流量. 现原理: cat /proc/net/dev ...

随机推荐

  1. 51nod 1102 【单调栈】

    思路: 对于这个高度往左能延伸最远x,往右能延伸最远y,(x+1+y)*w; 利用单调栈就行了: #include <cstdio> #include <stack> #inc ...

  2. vm安装mac

    需要 vm虚拟机:vm10 mac系统:   mac10.9 vm安装mac补丁 :    unlokc-all-v120 vm tools for mac10.9: darwin6.0.3.iso ...

  3. PyCharm的一些使用技巧

    定位到函数定义 在函数名处 Ctrl + B 就会快速定位到函数定义处 在Console中执行文件 全选内容后,右键菜单 Execute Selection in Console 或者快捷键 Alt ...

  4. bootstrap添加多个模态对话框支持

    bootstrap添加多个模态对话框支持 (2015-03-04 21:05:35) 转载▼ 标签: 房产   因为项目需要,在页面交互上要弹出多个dialog窗口,而bootstrap的modal支 ...

  5. [Xcode 实际操作]九、实用进阶-(2)遍历设备(输出系统)上的所有字体

    目录:[Swift]Xcode实际操作 在实际工作中,经常需要调整界面元素的字体种类. 本文将演示输出系统提供的所有字体,方便检索和使用. 在项目导航区,打开视图控制器的代码文件[ViewContro ...

  6. 计算机网络自顶向下方法第3章-传输层 (Transport Layer).1

    3.1 概述和运输层服务 运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信(logic communication)功能. 3.1.1 运输层和网络层的关系 网络层提供了主机之间的逻辑通信,而 ...

  7. bzoj1139:[POI2009]Wie

    传送门 状压dp,最短路 spfa似乎特别慢 代码: #include<cstdio> #include<iostream> #include<algorithm> ...

  8. DRF教程2-请求和响应

    Request objects REST framework中有一个Request对象,是HttpRequest的扩展,提供了新的请求解析,Request的核心功能就是request.data,它和r ...

  9. JS 两个数组合并

    让我们先考虑下面这情况: 代码如下: var a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ];var b = [ "foo", "bar", ...

  10. CF ECR59div2 D

    题目本质:如果答案是i,那么从行和列两维都会满足:以i的倍数分块,矩阵值相同. 一种解决方法: 1.首先题目里说了要在n的约数里找orzorz…… 2.块中需要一整排都相同.用“与前一排相同否?”来判 ...