[转]awk的getline函数用法 awk z

Shell 文本处理效率对比:grep vs awk vs sed 在 3 类场景下的性能与适用性 本文深入对比了Shell文本处理三大工具grep、awk和sed在纯字符串匹配、基于列的过滤和模式替换三类场景下的性能差异与适用性。通过详细的性能测试和实际案例,帮助开发者根据任务特性选择最优工具,提升文本处理效率。grep在查找字符串和过滤场景表现最佳,而awk擅长结构化数据处理,sed则是文本替换的首选。 阅读详情

http://xb9he.blogchina.com/xb9he/6373001.html

awk getline

关键词: awk    getline                                          

getline函数说明:

QUOTE:
A.getline从整体上来说,应这么理解它的用法:
            当其左右无重定向符 | 或 < 时,getline作用于当前文件,读入当前文件的第一行给其后跟的变量
            var 或$0(无变量);应该注意到,由于awk在处理getline之前已经读入了一行,所以getline得到
            的返回结果是隔行的。
            当其左右有重定向符 | 或 < 时,getline则作用于定向输入文件,由于该文件是刚打开,并没有被
            awk读入一行,只是getline读入,那么getline返回的是该文件的第一行,而不是隔行。
B.getline用法大致可分为三大类(每大类又分两小类),即总共有6种用法。代码如下:

QUOTE:
nawk ‘BEGIN{“cat data.txt”|getline d; print d}’ data2.txt
nawk ‘BEGIN{“cat data.txt”|getline; print $0}’ data2.txt
nawk ‘BEGIN{getline d < “data.txt”; print d}’ data2.txt
nawk ‘BEGIN{getline < “data.txt”; print $0}’ data2.txt
      以上四行代码均实现“只打印data.txt文件的第一行”(若打印全部行,用循环)
eg. nawk ‘BEGIN{FS=”:”;while(getline<”/etc/passwd”>0){print $1}}’ data.txt

QUOTE:
nawk ‘{getline d; print d”#”$3}’ data.txt
              awk首先读入第一行,接着处理getline函数,然后把下一行指定给变量d,再先打印d,由于d后面有换行符,所以后面紧跟的#会覆盖d,后面的$3同样也会覆盖d。


QUOTE:
nawk ‘{getline; print $0”#”$3}’ data.txt
               awk首先读入第一行接着处理getline函数,然后把下一行指定给$0,现在的$0已经是下一行内容,后面的#和$3(从$0中取)会覆盖$0的内容。

简单地读取一条记录
awk的 getline语句用于简单地读取一条记录。如果用户有一个数据记录类似两个物理记录,那么getline将尤其有用。它完成一般字段的分离(设置字段变量$0 FNR NF NR)。如果成功则返回1,失败则返回0(到达文件尾)。如果需简单地读取一个文件,则可以编写以下代码:

例:示例getline的使用

{while(getline==1)
{
#process the inputted fields
}
}

也可以使getline保存输入数据在一个字段中,而不是通过使用getline variable的形式处理一般字段。当使用这种方式时,NF被置成0,FNR和NR被增值。
用户也可以使用getline<"filename"方式从一个给定的文件中输入数据,而不是从命令行所列内容输入数据。此时,getline将完成一般字段分离(设置字段变量$0和NF)。如果文件不存在,返回-1,成功,返回1,返回0表示失败。用户可以从给定文件中读取数据到一个变量中,也可以用stdin(标准输入设备)或一个包含这个文件名的变量代替filename。值得注意的是当使用这种方式时不修改FNR和NR。
另一种使用getline语句的方法是从UNIX命令接受输入,例如下面的例子:

例:示例从UNIX命令接受输入
{while("who -u"|getline)
{
#process each line from the who command
}
}

当然,也可以使用如下形式:

"command" | getline variable


<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
VCSA 6.7证书更新全流程指南:从故障诊断到完整替换 本文详细介绍了VCSA 6.7证书更新的全流程,包括故障诊断、证书替换操作步骤及常见问题解决方案。通过使用官方脚本和证书管理器,帮助管理员快速解决证书过期问题,确保vCenter系统的稳定运行。特别强调了STS证书修复和全量证书重置的关键步骤,适用于vcsa6.7环境下的证书管理需求。 阅读详情

相关推荐

道闸不自动落杆故障排查:从传感器原理到控制器调试全解析

在工业自动化和物联网系统中,传感器与控制器构成的闭环控制是保障设备可靠运行的核心。其基本原理是通过传感器采集环境状态,控制器依据预设逻辑做出决策并驱动执行器动作。这一技术价值在于实现了无人值守下的安全、高效自动化,广泛应用于智能交通、安防和智能楼宇等领域。以停车场道闸系统为例,其自动落杆功能高度依赖地感线圈与防砸雷达的协同。地感线圈作为触发单元,负责感知车辆接近;而防砸雷达则作为持续监测的安全单元,通过微波探测防砸区域内是否有障碍物,其信号是控制器执行落杆决策的关键依据。当系统出现车辆通过后闸杆不落的典型故

weixin_29190651的博客 313

awk入门(三)--getline用法

20191206

Jiawen的博客 3374

vc formal实例

gui 方式启动命令,

weixin_45077935的博客 682

awk从入门到入土(11)awk getline函数详解

**getline命令是我个人认为awk最强大的一个命令。因为它彻底改变了awk的运行逻辑。**awk本质上就是一个for循环,它每次对输入文件的一行进行处理,然后转而执行下一行,直到整个文件的每一行都被执行完毕。整个过程是自动的,你无需做什么。但是,getline命令却可以让你去控制循环。当然,getline命令执行后,awk会设置NF,NR,FNR和$0等这些内部变量。我们先看一个简单的例子,打印出从1到10之间的偶数: 那么getline究竟是实现什么功能呢?正如getline的翻译,得到行,但是注意

二进制君 1827

GaN制备micro-led(一)

随着第三代半导体 GaN 材料的快速发展,GaN 基 LED 发展迅速并广泛商业化,这 为可见光通信的实现及应用提供了基础。然而,普通商用 LED 的调制带宽只有几十兆 赫兹,并不能很好的满足可见光通信系统高传播速率的需求。为增大调制带宽,针对发 射端 LED 光源部分的改进仍需提高。将光子晶体结构引入 LED 芯片量子阱内部,能够 影响光子寿命和光子传播,进而改变 LED 芯片的调制带宽和光提取效率。结合倒装微 尺寸(Micro)LED 结构,使其封装体积最小化,这使得可见光通信能够更加灵活地.

weixin_45852211的博客 896

LTSPICE使用教程:导入第三方库模型进行仿真

LTSPICE导入第三方SPICE模型进行仿真,以英飞凌的第三方.lib模型为实例进行详解

焊武大帝的专栏 3万+

awk--getline函数

awk---getline函数讲解: getline函数是awk经常会用到的一个函数,但是awk和next的区别有什么呢,在next之后,awk会重新执行下一条语句,从awk语句的开始出去执行,但是getline则不是,他会跳到下一条语句去执行,但是是接着getline后面的语句去执行,并没有回到awk的头部语句。 下面结合几个例子来加以说明 1、awk 'BEGIN{"date"|getl

xuejinliang的专栏 1054

【原创,解决CLodop安装后无法调用的问题】已经安装过CLodop,但是网页上仍然提示“clodop云打印服务(localhost本地)未安装启动,点击这里执行安装....”

在某些国内web网站中,需要安装一个名为“CLodop”的插件;但在实际使用过程中,即使安装了CLodop插件,网页试图调用它时还是会提示“clodop云打印服务(localhost本地)未安装启动,点击这里执行安装...”,且无法完成相关打印任务 本文属原创博客,分析了解决CLodop无法被调用的问题,并附上了原理和解决方法,本质上是和跨域请求以及CORS类安全组策略相关

link_in_csdn的博客 2万+

awk之getline()函数运用

awk可使用shell的重定向符进行重定向输出,如: $ awk '$1=100{print $1 > "output_file"}' file 上式表示如果第一个域的值等于100,则把它输出到output_file中。也可以用>>来重定向输出,但不清空文件,只做追加操作。     输入重定向需用到getline函数。getline从标准输入、管道或者当前正在处理

zwc946676027的专栏 1709

pytorch实现手语识别

连续手语识别项目,中文数据集CSL

masteryi-0018的博客 1万+

【AI智能体】AI 编程 + 飞书CLI + Skills 重塑开发新范式实战操作详解

AI 编程 + 飞书CLI + Skills 重塑开发新范式实战操作详解

congge 3667

awk(3)-awk getline

awk getline

convict_EVA的专栏 1185

Spark Sql 连接mysql

转载请务必注明原创地址为:http://dongkelun.com/2018/03/21/sparkMysql/ 1、基本概念和用法(摘自spark官方文档中文版) Spark SQL 还有一个能够使用 JDBC 从其他数据库读取数据的数据源。当使用 JDBC 访问其它数据库时,应该首选 JdbcRDD。这是因为结果是以数据框(DataFrame)返回的,且这样 Spark SQL操作轻松或便......

主要分享大数据相关的知识,如Spark、Hudi 1万+

awk函数详解与使用技巧

function function_name(argument1, argument2, ...) { # 函数体 return value # 可选 }示例awk 'printf "数值: %.2f\n", num' file.txt。

zhaominyong的专栏 395

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

awk常见用法总结

split用法 echo "hello_xiao_lan" | awk '{split($0,b,"_");print b[3]}' //substr用法 awk '{a=substr($1,2);print a}' file2 //求均值 awk '{ sum = $1+sum ;count++ } END {print count, sum,sum/count}' aa.txt

数据技术控 1553

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Shell脚本正则表达式之Awk函数

文章目录内置函数内置IO函数getline与next的区别内置数值函数 内置函数 内置IO函数 getline函数可以让awk立刻读取下一行数据(读取下一条记录并复制给$0,重新设置NF、NR、FNR)。 next函数可以停止处理当前的输入记录,立刻读取下一条记录,并且返回给awk程序的第一个模式匹配重新处理数据。 getline与next的区别 getline函数仅仅读取下一条数据,不会影响后续的awk指令的执行。 next不仅读取下一行数据,会导致后续指令不再执行,而是重新读取数据后重新回到

小叮当的博客 894

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

awk 的一些用法

1. 在 awk 中执行 shell 命令 有两种方法: 一种是使用 system 函数: $ ls grub grub_pk remove_duplicate.sh $ awk ' BEGIN {system("ls | xargs");}' grub grub_pk remove_duplicate.sh $ ls -lS total 12 -rw-r--r-- 1 c

小猪爱拱地 877

awk基本用法

NF                               Number of Fields 为一整数,其值表示$0上所存在的字段数目。 NR                               Number of Records为一整数,其值表示awk 已读入的数据行数目。  FILENAME             awk正在处理的数据文件文件名。 ls -l

Yan456jie的专栏 655

awk用法总结

参考: http://zhangwei20086.blog.163.com/blog/static/23055718201222485758448/ 1. awk 非常适合于结构化的文本文件(行、列数据)复杂处理。相对于 sed 而言,它可进 行复杂的编程处理,并且可以产生复杂的报表输出。  2. awk 通常有三个版本,旧 awk、nawk(新) 、gawk。Solaris 下

箫声清阳的空间 763

AWK 中级学习手册

AWK 中级学习手册摘要 本文详细介绍了AWK编程语言的中级用法,涵盖内置函数、自定义函数、正则表达式、多维数组等核心内容。主要内容包括: 内置函数:数值计算、字符串处理、时间操作和系统函数 自定义函数:语法结构及实际应用示例 正则表达式进阶:匹配操作符和match函数高级用法 多维数组处理:模拟二维数组和关联数组应用 输入输出控制:getline高级用法和格式化输出 性能优化技巧:避免重复计算和合理使用正则表达式 手册包含大量实用代码示例,适合已有AWK基础的用户进一步提升数据处理能力。

悟空看八戒烤熟了没的专栏c)4Upqt4SeVk 325

awk操作

1. awk 非常适合于结构化的文本文件(行、列数据)复杂处理。相对于 sed 而言,它可进 行复杂的编程处理,并且可以产生复杂的报表输出。  2. awk 通常有三个版本,旧 awk、nawk(新) 、gawk。Solaris 下建议用 nawk,因为旧 awk 有很多功能不支持,例如数学运算幂 ^  ,函数getline,system等。  3. 基本语法:awk ‘pattern{a

bjdu_jlxs的专栏 1236

AWK详解

awk语法    awk [options] 'commands' files option -F 定义字段分隔符,默认的分隔符是连续的空格或制表符   使用option中的-F参数定义间隔符号   用$1,$2,$3等的顺序表示files中每行以间隔符号分隔的各列不同域   NF变量表示当前记录的字段数 -v 定义变量并赋值 也可以借用次方式从shell变量中引入 command...

蘑菇丁的专栏 348

awk学习笔记

awk 学习笔记: ------------ ·模式: 开始-主输入循环-结束 ·主输入循环:模式匹配-记录-字段 ·变量表达的字段: [root@localhost ~]# echo a b c|awk 'BEGIN {one=1;two=2} {print $(one + two)}' c ·-f选项: [root@localhost ~]# awk -f lis...

ych4865的博客 190

awk里面执行shell/系统命令

 先把文件列表存在filename文件中 (1) awk '{system("rm $0")}' filename -------WRONG 因为对于 system来说 $0 不再是某行全部的内容,而是 “sh” , 上面的命令相当于执行“ sh rm sh” 具体例子: 如有t,tt,ttt几个zone,需要删除。 #zoneadm li

qingqingni1990的博客 1379

awk初步学习(不断总结)

1.输入文件中间多了换行符处理   本来的文件是每行4个字段,但是有的行中间多了换行符,导致读出来的文件变成了这样。使用awk进行处理。 cat 222.txt|awk 'BEGIN{a=0}{ if((a+NF)&amp;amp;amp;lt;4){ printf $0;a=a+NF } else{ printf $0&amp;amp;quot;\n&amp;amp;quot;;a=0 } ...

Farmer-Lei 316

awk知识点小结1

awk由main input循环组成,一个循环是一个例程,每个例程重复执行直到满足终止条件; 模式匹配 /^$/ {print “This is a blank line.”} --寻找空行并打印提示信息 ~用于测...

congdiku5262的博客 89
上一篇: PERL进程、管道、信号 z
下一篇: Perl 内置函数 chr/ord 示例 z
KataDoc360
博客等级 码龄18年 65粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值