首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何克服awk中的"(FILENAME=- FNR=1) fatal: division zero attempted“错误

在awk中,当尝试进行除零操作时,会出现"(FILENAME=- FNR=1) fatal: division zero attempted"错误。要克服这个错误,可以采取以下几种方法:

  1. 检查除数是否为零:在进行除法运算之前,先检查除数是否为零。可以使用if语句来判断除数是否为零,如果为零则避免进行除法运算。
  2. 使用条件语句避免除零错误:在进行除法运算之前,使用条件语句判断除数是否为零。如果除数为零,则可以选择跳过该次运算或者进行其他处理。
  3. 使用awk的内置函数避免除零错误:awk提供了一些内置函数,如ifelse()ternary等,可以用来处理除零错误。这些函数可以在进行除法运算之前判断除数是否为零,并根据情况返回相应的值。
  4. 使用awk的异常处理机制:awk支持异常处理机制,可以使用try-catch语句来捕获并处理除零错误。在try块中进行除法运算,如果出现除零错误,则在catch块中进行相应的处理。

总结起来,克服awk中的"(FILENAME=- FNR=1) fatal: division zero attempted"错误的方法包括检查除数是否为零、使用条件语句避免除零错误、使用awk的内置函数避免除零错误以及使用异常处理机制来处理除零错误。这些方法可以帮助我们避免该错误并保证awk脚本的正常运行。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云计算服务:https://cloud.tencent.com/product/cvm
  • 腾讯云数据库服务:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器运维服务:https://cloud.tencent.com/product/css
  • 腾讯云音视频处理服务:https://cloud.tencent.com/product/mps
  • 腾讯云人工智能服务:https://cloud.tencent.com/product/ai
  • 腾讯云物联网服务:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发服务:https://cloud.tencent.com/product/mobdev
  • 腾讯云存储服务:https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙服务:https://cloud.tencent.com/product/mu
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何awk脚本移植到Python【Programming(Python)】

pass # do something with line 在 Python 多个文件上执行类 awk 行为 如果您需要能够遍历任意数量文件同时保持行数持续计数(例如awkFNR ),那么此循环可以做到这一点...如果你同时需要 FNR 和 NR,这里有一个更复杂循环: def awk_like_lines(list_of_file_names): def _all_lines(): for filename...,但是我们处于了一个错误情况下。...现在parts[0]将对应 awk $1,parts[1]将对应 awk $2,依此类推。之所以出现这种情况是因为awk1开始计数“字段”,而Python从0开始计数。...在Python移植awk字段 作为一个示例,让我们将《如何awk 删除文件重复行》一行代码转换为 Python。 最初 awk 是: awk '!

1.4K01

linux awk 内置变量实例

环境变量 ERRNO UNIX系统错误消息 FIELDWIDTHS 输入字段宽度空白分隔字符串 FNR 当前记录数 OFMT 数字输出格式 %.6g RSTART 被匹配函数匹配字符串首 RLENGTH...结果: 1##root##/bin/bash 注: OFS设置默认字段分隔符, FNR当前记录行 5) 行记录分隔符(ORS) awk 'BEGIN{FS=":"; ORS="##"}{print FNR...获得输入参数内容是一个数组 7) 获得传入文件名(FILENAMEawk 'BEGIN{FS=":";}/^r/ {print FILENAME, "\t", $0}' /etc/passwd...三、外部变量 1) 基本用法 awk 两个特别的表达式,BEGIN和END 这两者都可用于pattern,提供BEGIN和END作用是给程序赋予 初始状态 和 程序结束 之后执行一些扫尾工作。...'{print test}' 结果: awk: cmd. line:1: fatal: cannot open file `{print test}' for reading (No such file

2.8K20

Linux | awk 命令「建议收藏」

-f awk-script-file input-file(s) awk 选项参数 参数 说明 -F 指定输入文本分隔符,字符串或者是一个正则表达式 -v 定义一个用户自定义变量 -f 从指定文件读取...最简单: last -n 5 | awk '{print $1}' # 也可以取 1 ,3 列 last -n 5 | awk '{print $1,$3}' # awk 命令列是从1开始取...cat awk_test.txt | awk -v a=1 '{print $1 + a}' 结果和上面文件内容有一点差别,是因为最后一行其实是一个空行,但是在进行加法时候,这一行也加上了1,但是不是按照数字加减法...CONVFMT 数字转换格式(默认值为%.6g)ENVIRON环境变量关联数组 ERRNO 最后一个系统错误描述 FIELDWIDTHS 字段宽度列表(用空格键分隔) FILENAME 当前文件名...FNR 各文件分别计数行号 FS 字段分隔符(默认是任何空格) IGNORECASE 如果为真,则进行忽略大小写匹配 NF 一条记录字段数目 NR 已经读出记录数,就是行号,从1开始 OFMT

73310

Linux 常用命令

linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向命令,所以>/dev/null 2>&1作用就是让标准输出重定向到/dev/null(丢弃标准输出),然后错误输出由于重用了标准输出描述符...,所以错误输出也被定向到了/dev/null错误输出同样也被丢弃了。...awk '{print FNR,$0}' f.txt cpf.txt # FILENAME 当前输入文件awk '{print FNR,FILENAME,$0}' f.txt cpf.txt #...awk '{print FILENAME,"NR="NR,"FNR="FNR,"$"NF"="$NF}' f.txt cpf.txt echo 1:2:3:4 | awk -F: '{print $1,...FNR:在awk处理多个输入文件时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件时候,FNR就从1开始计数,FNR可以理解为File Number

38630

正则复习2

awk 合并一个文件 http://ask.apelearn.com/question/493    我有这样一个需求,我需要把两个文件,第一列相同行合并到同一行。...现在我想要这个两个文件合并后结果为: 1 ab aa   2 cd bb   3 ad ee   4 bd ss   5 de 实现这个需求命令示例: awk ‘NR==FNR{a[1]=2}NR>...命令解释:NR表示是读取行数(NR会一直累加),FNR则表示读取的当前行数,先读完1.txt行数再读2.txt行数,所以其实NR==FNR 就表示读取1.txt时候。...行号后面列顺序是在print定义,也可以定义先打1.txt2列,后打2.txt2列,改为{print a[1],0}即可。...egrep '123|abc' filename 用egrep同样可以实现: ? awk '/123|abc/' filename awk 实现方式: ?

1.6K10

Linux-awk及内置变量

通常运行模式: awk ' 条件类型1{动作1} 条件类型2{动作2}...‘ filename awk ' BEGIN{ print "start" } pattern { commands }...---- awk 内置变量使用 内置变量表 属性 说明 $0 当前记录(作为单个变量) $1~$n 当前记录第n个字段,字段间由FS分隔 FS 输入字段分隔符 默认是空格 NF 当前记录字段个数,...UNIX环境变量 ERRNO UNIX系统错误消息 FIELDWIDTHS 输入字段宽度空白分隔字符串 FNR 当前记录数 OFMT 数字输出格式(默认值是%.6g) RSTART 被匹配函数匹配字符串首...---- 获得传入文件名(FILENAME使用) [root@entel2 ~]# awk 'BEGIN{FS=":";print FILENAME}/^root/{print FILENAME}'.../etc/passwd /etc/passwd 可见 第一行并没有打印出 /etc/passwd FILENAME,$0-$N,NF 不能使用在BEGIN,BEGIN不能获得任何与文件记录操作变量

2K41

技能篇:awk教程-linux命令

BEGIN是AWK关键字,必须为大写 BODY 语句块 /pattern/ {awk-commands},BODY语句块命令会对输入每一行文本内容执行,可以通过提供模式来控制这种行为 END 语句块...image.png BODY语句块执行解析 脚本命令:awk '{[代码语句1][代码语句2]} fileName;「如果没有 fileName 或其他输入流,且存在BODY语句块,BODY语句块会进入死循环...ENVIRON 环境变量 ERRNO 最后一个系统错误描述 FILENAME 当前文件名 FS 字段分隔符(默认是任何空格) IGNORECASE 进行忽略大小写匹配 NF 一条记录字段数目...NR 已经读出记录数,就是行号,从1开始 FNR 和NR类似,不过如果存在多个输入文件,FNR当前文件行号 OFS 输出 字段分隔符 ORS 输出 行分隔符 RLENGTH 由match函数所匹配字符串长度...ENVIRON["USER"] }' csc FILENAME 当前文件名 $ awk 'END {print FILENAME}' test.txt test.txt RSTART,由match函数所匹配字符串第一个位置

1.9K20

一天一个 Linux 命令(21):awk 命令

(可移植对象模板)格式文件,其中包含程序中所有可本地化字符串条目 -h,--help -L [fatal],--lint[=fatal] 对可疑或不可移植到其他AWK实现构造提供警告 -n,...CONVFMT 数字转换格式(默认值为%.6g)ENVIRON环境变量关联数组 ERRNO 最后一个系统错误描述 FIELDWIDTHS 字段宽度列表(用空格键分隔) FILENAME 当前文件名...FNR 各文件分别计数行号 FS 字段分隔符(默认是任何空格) IGNORECASE 如果为真,则进行忽略大小写匹配 NF 一条记录字段数目 NR 已经读出记录数,就是行号,从1开始 OFMT...,而不是单独对文件进行编号 FNR: 对每个文件进行行数单独编号 #example: awk '{print FNR}' file1 file2 : 会对每个文件行数进行单独编号显示 FILENAME...: awk命令所处理文件名称 #example: awk '{print FILENAME}' file1 : 显示当前文件名,但会每行显示一次 awk 'END{print FILENAME}

2K20

学习笔记0411----正则三剑客之sed、awk

大写变小写: 4. sed在某一行最后添加一个数字 5.打印1到100行含某个字符串行 6.awk 中使用外部shell变量 7. awk 合并一个文件 8.把一个文件多行连接成一行 9.awkgsub...0,a[1]}’ 1.txt 2.txt 说明: awk ‘{print NR,FNR}’ 1.txt 2.txt //首先理解NR和FNR不同(awk支持同时操作多个文件内容) 当NR==FNR...// 替换$1www为abc image.png 10.awk 截取指定多个域为一行 用awk指定分隔符把文本分为若干段。...如何把相同段内容弄到一行? 以/etc/passwd为例,该文件以":"作为分隔符,分为了7段。...-E ‘123|abc’ filename // 找出文件(filename包含123或者包含abc行 egrep ‘123|abc’ filename //用egrep同样可以实现 awk

2.6K21

Linux学习 - 常用和不太常用实用awk命令

而且教程摒弃了完美操作,列举出常见错误和解决方式,管道、标准输入输出解惑Linux下多种信息输出方式。 在文件排序和FASTA文件操作简述了awk和sed使用,作为一个引子。...awk读取单个文件时基本语法格式是awk 'BEGIN{OFS=FS="\t"}{print $0, $1;}' filename。...awk后面的命令部分是用引号括起来,可以单引号,可以双引号,但注意不能与内部命令中用到引号相同,否则会导致最相邻引号视为一组,引发解释错误。...a[$1]=1: 索引操作,类似于python字典,在ID map,统计中有很多应用。...=1{$4=$4"_"NR;print $0}' file 糅合操作 awk执行系统命令 (注意引号使用) # 系统命令组成字符串,交给system函数运行 awk 'BEGIN{OFS=FS="\

1.6K100

Linuxawk使用方法详解

任意一个部分都可以不出现在脚本,脚本通常是被单引号或双引号,例如: awk 'BEGIN{ i=0 } { i++ } END{ print i }' filename awk "BEGIN{ i=...CONVFMT 数字转换格式(默认值为%.6g)ENVIRON环境变量关联数组 ERRNO 最后一个系统错误描述 FIELDWIDTHS 字段宽度列表(用空格键分隔) FILENAME 当前文件名...FNR 各文件分别计数行号 FS 字段分隔符(默认是任何空格) IGNORECASE 如果为真,则进行忽略大小写匹配 NF 一条记录字段数目 NR 已经读出记录数,就是行号,从1开始 OFMT...,columns:7,linecontent:daemon:x:2:2:daemon:/sbin:/sbin/nologin 统计/etc/passwd文件命令行参数ARGC,文件行号FNR,字段分隔符..."%4s %4s %4s %4s %4s %4s\n",FILENAME,ARGC,FNR,FS,NF,NR}' /etc/passwd FILENAME ARGC FNR FS NF NR -

3.2K31

妙啊,这份问题排查工具清单!

1.基础命令: awk '{print $4,$6}' f.txt awk '{print NR,$0}' f.txt cpf.txt awk '{print FNR,$0}' f.txt cpf.txt...awk '{print FNR,FILENAME,$0}' f.txt cpf.txt awk '{print FILENAME,"NR="NR,"FNR="FNR,"$"NF"="$NF}' f.txt...cpf.txt echo 1:2:3:4 | awk -F: '{print $1,$2,$3,$4}' 2.匹配: awk '/ldb/ {print}' f.txt #匹配ldb awk '...FNR:在awk处理多个输入文件时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件时候,FNR就从1开始计数,FNR可以理解为File Number...在tomcat启动脚本可见加载类详细信息 -verbose 其他 dmesg 如果发现自己java进程悄无声息消失了,几乎没有留下任何线索,那么dmesg一发,很有可能有你想要

51230

一些shell脚本

-t:执行完随后指令,即退出shell。 -u:当执行时使用到未定义过变量,则显示错误信息。 -v:显示shell所读取输入值。 -x:执行指令后,会先显示该指令及所下参数。....cfg >1.txt 1表示记录第一个字段。...awk '{print $1}' //第1awk '{print $(NF-1)}' //倒数第2列 NR表示从awk开始执行后,按照记录分隔符读取数据次数,默认记录分隔符为换行符,因此默认就是读取数据行数...FNR,每当处理一个新文件时候,FNR就从1开始计数,FNR可以理解为File Number of Record。...在awk处理多个输入文件时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR。 NF表示目前记录被分割字段数目,NF可以理解为Number of Field。

69720
领券