shell脚本,awk常见初始化变量的题目。
文件 内容如下
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常见初始化变量的题目。的更多相关文章
- shell脚本中常见的一些特殊符号和作用详解
这篇文章主要介绍了shell脚本中常见的一些特殊符号和它的作用详解,总结的很简洁,容易看懂,需要的朋友可以参考下 在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我 ...
- shell脚本中特定符合变量的含义
shell脚本中特定符合变量的含义: $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过9个 $$ 脚本运行的当前进程PID号 ...
- shell脚本 awk工具
awk工具概述awk编程语言/数据处理引擎基于模式匹配检查输入文本,逐行处理并输出通常在shell脚本中,或取指定的数据单独用时,可对文本数据做统计 命令格式格式一:awk [选项] '[条件]{编辑 ...
- shell脚本中一些特殊变量
在shell脚本中,一些常见的特殊变量表示方式还是需要知道的 如下就是一些经常用到的特殊变量表示方法: $0 当前脚本名$1 $2... 传入脚本or函数的参数(大于10需大括号括起来)$ ...
- Shell脚本编写2------有关变量
shell脚本中变量定义方式十分简单,直接将值赋值给变量较好例如 :name="tuanzhang"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.变量命名 ...
- shell脚本—基础知识,变量
shell脚本本质: 编译型语言 解释型语言 shell编程基本过程 1.建立shell文件 2.赋予shell文件执行权限,使用chmod命令修改权限 3.执行shell文件 shell变量: sh ...
- Bash基础——Shell脚本内部常用环境变量
$@和$*区别 不加引号的时候没区别 #! /usr/bin/bash function print_args_at { printf "%s\n" $@ echo $@ } fu ...
- shell脚本基础知识以及变量
一.基础知识 1.shell脚本的格式注意事项 第一行(一般必须写明):指定脚本使用的shell(若不写明也不影响脚本的执行,系统会自动以sh解析脚本)."#!/bin/bash" ...
- shell脚本 awk实现实时监控网卡流量
一.简介 通过第3方工具获得网卡流量,这个大家一定很清楚.其实通过脚本一样可以实现效果.下面是我个人工作中整理的数据.以下是shell脚本统计网卡流量. 现原理: cat /proc/net/dev ...
随机推荐
- MySQL 分区简介
MySQL自5.1开始对分区(Partition)有支持. = 水平分区(根据列属性按行分)=举个简单例子:一个包含十年发票记录的表可以被分区为十个不同的分区,每个分区包含的是其中一年的记录. 水平分 ...
- Node.js 内置模块Stream(流)
"流"是一种抽象的数据结构 通过使用"流"可以将一段数据分割成几段,并按顺序传输,使用"流"可以降低对系统性能的要求,减少对CPU的消耗 S ...
- perl 处理特殊字符
如果大家想使用perl 来处理一些特殊字符,例如"del"这种字符,就需要使用到chr() 函数了 例如大家如果向一个文本中写入以下内容 aaaa0x1270x1bccccc 这时 ...
- OSPF-1-OSPF的数据库交换(1)
一.OSPF路由器ID(RID) 选举过程: 1.使用router-id id 命令中配置的路由器ID 2.up着的环回接口最大的ip 3.up着的非环回接口最大ip 如果路由器的RID发生了变化 ...
- python操作redis之hash操作
# __author__ = 'STEVEN' import redis,time #连接池 polls = redis.ConnectionPool(host='192.168.43.22',por ...
- 栈 && 教授的测试
卡特兰数:https://blog.csdn.net/wu_tongtong/article/details/78161211 https://www.luogu.org/problemnew/sho ...
- Elasticsearch之入门知识
elasticsearch是一个高度可扩展得开源全文搜索和分析的引擎.可以快速.近实时的存储,搜索和分析大量数据.通常用作底层引擎技术,为具有复杂搜索功能和要求的程序提供支持. 用处: • 运行网上商 ...
- Tomcat固定的目录结构
1. /work Tomcat把由Jsp生成的Servlet放于此目录下. 2. /webapps 当发布Web应用时,默认情况下把Web应用文件放于此目录下. 3. /logs 存放Tomcat的日 ...
- [异常]undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil>
在进行Rspec 编译测试: bundle exec rspec spec/requests/static_pages_spec.rb 提示错误: FF Failures: 1) Static pag ...
- CSS Secrets 翻译笔记 01: CSS coding tips
.firDemoButton{ padding: 6px 16px; border: 1px solid #446d88; background: #58a linear-gradient(#77a0 ...