Awk 需要对ata进行汇总,但只能计算

我得了流感,但这不是借口。我对此非常着迷(我确信解决方案很简单)。我得到了这个输入文件 491 Reynosa 639 JGS-Memphis 5 JGS-Memphis 480 Reynosa 247 JGS-Memphis 556 Reynosa 71 JGS-Memphis 993 Reynosa 5 JGS-Memphis 773 Reynosa 63 JGS-Memphis 589 Reynosa 809 Reynosa 671 Reynosa 397 Reynosa 40

“的含义;a「;在awk命令中?

我在一个脚本中有一个awk命令,我正在努力使它生效,但我不理解“a”的含义: awk'FNR==NR{a[$1]=$0;next}($a中的2)'FILELIST.TXT FILEIN.*>FILEOUT* 我对使用命令行很陌生,所以我只是想弄明白,谢谢。这里a不是命令,而是awk数组它也可以是arr: awk 'FNR==NR {arr[$1]=$0;next} ($2 in arr)' FILELIST.TXT FILEIN.* > FILEOUT.* 这里a不是一个命令,而是一个a

awk和数字比较,数字小于1.7e-308

下面的命令 echo 1.8e-308 | gawk '$1<0.05' echo 1.8e-308 | gawk'$1尝试以下方法: echo 1.8e-308 | gawk '($1+0)<0.05' 其他一些有趣的观察结果: echo "True" | gawk '1.8e-308<0.05' 及 鉴于 echo "True" | gawk '1.8e-323<1.9e-323' echo“True”| gawk“1.8e-3232.226e-308是识别

如何在awk中包含挖掘查找?

我有一个awk命令从装载点提取信息(请参阅中的接受答案): 我想在这个awk命令中包含一个dig查找,以查找主机名的IP。不幸的是,mount命令有时包含IP,有时包含主机名。我尝试了以下操作,但它有一个不需要的换行符、不需要的返回代码,如果有IP地址,则无法工作: 主机名 echo "example.com:/remote/export on /local/mountpoint otherstuff" | awk -F'[: ]' '{if(/^\//)print system("dig +s

awk:删除逗号分隔字段的第一个和最后一个条目

我有一个4列数据,看起来如下所示: a 1 g 1,2,3,4,5,6,7 b 2 g 3,5,3,2,6,4,3,2 c 3 g 5,2,6,3,4 d 4 g 1,5,3,6,4,7 我试图删除整个第四列中的前两个数字和后两个数字,因此输出如下所示 a 1 g 3,4,5 b 2 g 3,2,6,4 c 3 g 6 d 4 g 3,

Awk——将字符串拆分为长度为n的子字符串

我熟悉awk程序中使用的函数split()。我想知道如何使用它将字符串拆分为长度为n的较小字符串?类似于(n设置为2): 输入: abcdefgh 输出: ab cd ef gh 如果您能想出一个不出现在字符串中的分隔符,那么类似的方法将起作用: awk 'BEGIN {f="abcdefgh"; gsub(/../, "& ", f); split(f, a, FS); print a[1],a[2],a[3],a[4]}' (g)awk中的Split函数用于在分隔符上拆分字符串

作为规则的Awk输入变量

你好 我有下一个代码: BLOCK=`awk ' /\/\* R \*\// { level=1 count=0 } level { n = split($0, c, ""); for (i = 1; i <= n; i++) { printf(c[i]); if (c[i] == ";") { if(level==1) { level = 0; if (count

Awk 一场接一场的第一场比赛

鉴于此,我想 打印@bash行之后的第一行安装:。请看 该文件用于完整的输入,但这里有一个示例 @ base-files ; few lines install: x86_64/release/base-files/base-files-4.2-3.tar.xz 46428 6372358800e589b ; couple of lines install: x86_64/release/base-files/base-files-4.1-1.tar.bz2 49519 f91ed6eab060

如果匹配,如何使用awk或其他工具重新排列字段

我有一个lisp程序输出的文件: (john (a b c (grade 90 good))) (doe (e f (grade 80 fair) g h i j)) (mary ((grade 100 best)) (jane (x y (grade 95 better) z)) 我想把(年级编号说明)移到名字的右边;e、 g (john (grade 90 good) (a b c)) (doe (grade 80 fair) (e f g h i j)) 这就是我所拥有的,但它是

检查字段在awk中是否为整数

我使用以下脚本查找mongodb服务器上正在运行的连接数 mongostat | awk 'BEGIN{FS=" *"}{print "Number of connections: "$19}' 但是每10行,$19携带一个字符串,表示一个字段名 仅当$19为整数时,我才想将脚本修改为打印 我可以尝试FS=“*[^0-9]*”,但它匹配以数字开头的列,而不是进行选择性打印。使用 mongostat | awk -F ' *' '$19 ~ /^[0-9]+$/ { print "Number

awk打印5个字段中任何一个的值不同的行,忽略缺失的数据

我试图找出我的表格文件中5个字段4-8的值是否存在两两差异。缺少的数据由字符串na表示。我希望打印这些字段中具有多个值的任何行,忽略缺少的数据,例如,下面示例第一行中的T和G,或者如果包含na,则打印两个以上的值 下面是我正在使用的数据文件中的几行: 2 1150 T na na na T G 2 1151 C na na na T C 2

是否使用awk自定义函数打印文件中的最小整数?

awk函数在文件名fun.awk中如下所示: { print small() } function small() { a[NR]=$0 smal=0 for(i=1;i<=3;i++) { if( a[i]<a[i+1]) smal=a[i] else smal=a[i+1] } return smal } awk命令是: awk -f fun.awk awk.write 它没有给我结果?为什么?我认为你走错了方向。在awk中,一种方法可能是: NR == 1 {

在awk中使用sed

见下一行: 1 164184236 DEL00004514;DEL00004533 N <DEL> . PASS . GT:GL:GQ:FT:RCL:RC:RCR:CN:DR:DV:RR:RV . . . . 0/1:-11.985,0,-35.4847:120:PASS:20:18:19:1:0:0:12:6 . . . . . . . . . . . . . 0/1:-6.194

Awk 将终端中的最后n个命令复制到剪贴板

我想把这样的东西复制到剪贴板 $ command1 $ command2 如果您运行history,您将以相反的顺序获得命令,因此我只想从尾部跳过一些行,并将输入行号替换为“$”。正如您可能怀疑的那样,当您必须记录工作流或编写文档时,这是一种非常有用的速记方法 例如: $ history 1340 pass 1341 pass insert m clouds/cloud9 1342 pass insert -m clouds/cloud9 1343 sudo service

使用awk作为excel

我们必须处理大量的*.cvs文件(近1GB和200万行)。每个人都使用将这些文件导入excel,然后进行各种计算(包括数据透视表) 我尝试使用awk进行这些计算(如果可能的话,我会稍后尝试类似于透视表的计算),但我发现了一些问题 我的文件有24列,带有“;”分隔符,如下所示: URU;CMEX-CRI-URURTRDW01;CMEX-CRI-OCCRTRDW01;30/09/2017;23:15;3,90;0,00;0,00;1,00;1,00;9,40;37,56;URU;8000;8000;

在awk中使用通配符

使用awk,我想打印第一列中以22_开头的字符串的所有行 我尝试了以下方法,但显然*在awk中不能用作通配符: awk '$1=="22_*" {print $0}' input > output 这在awk中可能吗?让我们从一个测试文件开始: $ cat >file 22_something keep 23_other omit 要仅保留以22\u开头的行,请执行以下操作: $ awk '/^22_/' file 22_something keep 或者,如果您希望显式引用第

AWK-比较文件,按特定顺序匹配字段,X要检查的字段数

一旦我确定了字段的数量,我就可以用if语句来编写,但我相信AWK的强大功能可以简化这一过程。我希望if语句和下面的输出中的逻辑是清晰的 确定文件1中从第一个节点$2到第二个节点3的链接号 如果适用,确定文件1中从第二个节点$3到第三个节点4的链接号 如果适用,在文件1中确定从第三个节点$4到第四个节点5的链路号 ……等等 文件1:路径表 文件2:链接表 输出: 网络地图 编辑匹配逻辑: 以文件1中的一行为例: N1-N4 NODE3 NODE4 这应该与文件2中的这一行相匹配: NOD

Awk grep匹配模式后的下一个单词,直到第一个空格

我想在模块后面找到单词,在那里 模块和要匹配的字之间可以有一个或多个空格 待匹配单词与下一个单词之间的单个空格 要匹配的单词可以是任何模式 HAL_POINT ITERATION IMPLEMENTED VERSION MODULE 1.2.3/4 OLKI 9FEB17 3MAR2018 3.2.6 CHK_PONT VALUES IMPLEMENTED VERSION MODULE 350/4 OLKI 9FEB17 3APR2018 3.2.6 HAL_POINT ITERA

使用符号正确匹配Awk中的列?

我有两个独立的文件,Input_File1和Input_File2,每个文件都包含不同数量的列,我根据多列中的数据合并了这些列() 到目前为止,已向Input_File1添加了一列,以根据Input_File1的第1、2和3列以及Input_File2的第1、2和3列中的数据匹配创建新文件(file3)。总的来说,这很有效。但是,在某些情况下,Input_File1和Input_File2中第1、2和3列中的数据相同,但file3中的输出应该不同。这是基于Input_File1和Input_Fi

如何将AWK中的getline与连接在一起的命令一起使用

这快把我逼疯了。我要做的就是从awk向终端传递一个命令,该命令是由其他变量连接在一起的字符串 awk的文档中说 "echo" $1 | getline var 应该将$1的值放入var,但事实并非如此。我错过了什么 我应该补充一点,我实际上有一个循环 for ( i = 1; i <=NF ; i=i+1 ) { "echo" $i | getline var printf var " " } printf "\n" 输出 0 0 0 0 见鬼。我发现你的样品

bashshell中用awk生成随机数

我希望随机洗牌一个文件的行,然后打印成不同的五个文件 但我一直保持在文件1到文件5中出现的行的顺序完全相同。随机生成过程无法正常工作。如有任何建议,我将不胜感激 #!/bin/bash for i in seq 1 5 do awk 'BEGIN{srand();} {print rand()"\t"$0}' shuffling.txt | sort -k2 -k1 -n | cut -f2- > file$i.txt done 输入shuffling.txt 111 1032

Awk 基于标志的求和列

我有一个格式类似的文件(实际上有更多的列和行) 我想知道在$2中有多少行的值为n 我尝试了awk'{if($2=='n')SUM+=1}END{print SUM}文件名 这是行不通的。有什么想法吗?单向: awk '$2=="n"{x++}END{print x}' file awk '$2=="n"{x++}END{print x}' file

使用awk单行打印数组的选定元素

假设我有一个如下所示的文件内容 cat文件1 A1 A2 A3 A4 A5 A6 A7 B1 B2 B3 B4 B5 X1 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Z1 Z2 Z3 如果可能,如何使用AWK单线解决方案,使用某种字段分隔符选择性地打印此数组的选定元素。 我想选择并打印第一行的第三字段、第二行的第二字段、第三行的第一字段、第四行的第九字段和第五行的第二字段 A3:B2:X1:Y9:Z2 如果字段分隔符为“:”请尝试执行以下awk命令 awk 'BEGIN {OR

Awk 在每个“之间添加逗号”&引用;归档

输入: “胡说八道”胡说八道“胡说八道”胡说八道“胡说八道” 所需输出:“stuff blah mostuff”、“stuff and blahagain”、“stuff yeablah” 我如何使用awk来实现这一点 只需将替换为,“ 通过sed $ echo '"stuff blah mostuff" "stuff and blahagain" "stuff yeablah"' | sed 's/"[[:blank:]]"/","/g' "stuff blah mostuff","stuff

如何使用awk排除空行? 问题:

如何排除以空格字符开头且线上没有其他字符的行?用AWK,我想打印线需要打印< /代码>,但它也打印空白行。我怎样才能排除它 脚本:test.awk 资料 结果 使用NF变量 你不是在问以空格开头的行,而是在问如何丢弃空行。实际上,空行没有字段,因此可以使用内置的NF变量丢弃至少没有一个字段的行。例如: $ awk 'NF > 0 && !/^(start|#)/ {print "Result: " $0}' /tmp/corpus Result: Need to prin

AWK-提取单词的最后一个音节

我得提取几个单词的最后一个音节 这些词总是以辅音结尾 可能的辅音是:“b c cs d dz dzs f g gy h j k l ly m n ny p q r s sz t ty v w x y z z” 可能的元音是:“a o uöe iáúőűéí” 有了这个词,“vélemény”,我必须提取ény 有了这个词“otthion”,我必须提取离子 有了这个词,“feladat”,我必须提取at 我已经做了这个函数,它将返回最后一个元音的位置。但是如果两个元音在一起呢 function e

如何使用Awk对特定列的前100行求和?

如何使用Awk对特定列的前100行求和?我写 awk 'BEGIN{FS="|"} NR<=100 {x+=$5}END {print x}' temp.txt awk'BEGIN{FS=“|”}NR在所需的前100条记录之后退出: awk -v iwant=100 '{x+=$5} NR==iwant{exit} END{print x+0}' test.in 拿出来转一圈: $ for i in {1..1000}; do echo 1 >> test.in ; do

使用awk从第一列中删除目录路径

我有一个我感兴趣的数据文件,它的列由awk取出,如下所示。我想在同一个awk命令中去掉$1中的目录路径。可能吗 cat data.txt | awk '{print $1,$2,$6,$7,$14,$15,$16}' /foo1/foo2/debug/foo.txt:06/28 10:44:44.066 delta 1:1: net transfer 1263 /foo1/foo2/debug/foo1.txt:06/29 10:45:48.066 delta 2:1: net trans

使用awk搜索特殊字符的模式

我有一个类似下面的文件 HTTP/1.1 401 Unauthorized Server: WinREST HTTP Server/1.0 Connection: Keep-Alive Content-Type: text/html Content-Length: 89 WWW-Authenticate: ServiceAuth realm="WinREST", nonce="1828HvF7EfPnRtzSs/h10Q==" <html><head><title

用awk逐行相乘

下午好, 我试图用awk做以下乘法: 0 1 2 3 2 A21*A12 A21*A13 A21*A14 5 A31*A12 A31*A13 A31*A14 4 A41*A12 A41*A13 A41*A14 输入: 0 1 2 3 2 1 3 预期产出: 0 1 2 3 2 2 4 6 1 1 2 3 3 3 6 9 0 1 2 3 2 2 4 6 1 1 2 3 3 3 6 9 是否可以使用awk执行此操作 awk ' NR == 1 {n =

Awk 当第一行与sed匹配时,在文件的顶部插入一行,在底部插入另一行

当第一行与sed匹配时,我想在文件的顶部插入一行,在底部插入另一行。我试过下面这句话,但没有成功,也没有改变。它插入第一行,但不插入最后一行: file.txt REMARK Blah Blah blah Sed: 谢谢 马里奥你能试试下面的awk吗?如果这对你有帮助,请告诉我。下面将在第一行匹配后插入一个字符串MODEL,该行中包含字符串备注。在最后一行读取后还插入字符串ENDMODEL awk 'FNR==1 && $0=="REMARKS"{print $0 ORS "M

使用awk/sed更改特定列的值

我有一个52列的文件。我想将第11列从0替换为1。我的文件中的所有数据都以“|”分隔。我试过下面的命令 awk -F \| '{$11=1; print}' input_file.txt 我已将第11列替换为上述命令。但该文件的输出将分隔符更改为“空格”。我不能仅仅从outfile中删除空格,因为几乎没有列也有有效的空格。在awk脚本的BEGIN子句中,将字段分隔符设置为与-F标志设置的FS相同,否则它将设置为的默认值。 将设置为与awk脚本的BEGIN子句中的FS(使用-F标志设置的字段分

二级排序awk数组

我在下面有一个输入文件,其中字段分隔符ir“+”,我想在2级中排序。先按第三个字段,然后按升序按第二个字段 输入 到目前为止,我的代码如下,但输出不是我所需要的 awk '{split($0,f,"+") a[$0]=f[3]; }END{ n=asorti(a,b) for (i=1;i<=n;i++) print b[i]}' file.txt 110x16+255+63 178x59+223+65 1

awk语言中最大公约数的计算

我正试图为awk语言编写一个代码,用于计算两个自然数的最大公约数,但迄今为止我的尝试都失败了 我将感谢你的帮助 我的尝试: awk '{ a = 5, b = 10 while (a!=0 and b!=0){ if (a > b) { a = a % b } else { b = b % a} } }' print (a+b) 修复脚本中的语法和语义错误会产生: awk ' BEGIN { a = 5 b = 10 while ( (a!=0)

Awk 重新格式化行

我有几排像这样的 [206, 40, 200] 3.588939213064659e-06 [206, 40, 58, 200] 1.0137134449402395e-05 [206, 200] 1.2268187790002155e-05 [206, 38, 200] 3.2630262623982875e-05 [206, 40, 38, 200] 3.273281423485983e-05 [206, 40, 58, 38, 200] 3.341643719910475e-05 是否有

如何在sed或awk中连接两个模式之间的线

我有一个json文件,我想在括号中加入x行 cat testfile.json { "CacheStatistics_ReadHits": 0, "CacheStatistics_ControllerPrefetchRemaining": [ 0, 0 ], "CacheStatistics_ControllerReadMisses": [ 0, 0 ] } 我尝试了以下方法,应该执行换行符替换,首先从以“[”结尾的行开始,一直到结束括号“]”

Awk 比较两个文件的列

我有两个文件,并试图在列的基础上比较这些文件 文件1 CALL_3 CALL_1 CALL_2 CALL_5 CALL_3 CALL_2 CALL_1 CALL_4 文件2 CALL_1 GAP:A GAP:G CALL_3 GAP:C GAP:Q GAP:R CALL_5 GAP:R GAP:A CALL_4 GAP:C GAP:D GAP:A GAP:W CALL_2 GAP:C GAP:R GAP:A 我只想打印文件_1中的那些交互,它们

数组数组的排序与awk中的多维数组有何不同?

我已经解决了一个问题,列出了一组具有组件的项,这些项在awk中又具有属性 我试图从两个方面来解决这个问题 1) 定义数组列表[项目编号、组件编号][属性]。 2) 定义一个数组列表[项目编号][组件编号][属性]。 这在很多方面都很有趣,因为我注意到(2)保持了插入顺序,而(1)没有。我知道阵列在awk中是关联的,这很可能是巧合。然而,由于插入顺序在我的案例中很重要(同时,我想了解更多关于awk的信息),我想知道是否会发生这种情况以及原因 有什么想法吗? 溴 Patrik两种方法都没有保留任何关

Awk 用于字符串替换的更快算法/语言 编辑:

下面提供的方法3通过测试更快,将预计运行时间从2-3天减少到40% 将该子字符串中的每个字符替换为N或N(保留 案例) 样本输出: CACTGCTGTCACCCTCCATGCACCTGCCCACCCTCCAAGGATCNNNNNNNCACTGCTGTCACCCTCCATGCACCTGCCCACCCTCCAAGGATCaagctCCgaTNNNNNNNNNNNNGgnnnnnnnnnnnnnnnnnnnNNNNNNNNNNNNNNNNNNNNNNnnnnnnNNNNNNNNNNnnnnnnNNNN

如何使用AWK将带有特殊字符的字符串附加到每行

我有一个csv,对于csv中的每一行,我需要添加新列。其中一列是时间戳,它似乎正在中断操作 Example: col1,col2,col3 1,2,3 4,5,7 After col1,col2,col3,col4,col5,col6 1,2,3,01-01-2020 01:01:01,name,class 4,5,7,01-01-2020 01:01:01,name,class 我曾经 供参考 ORIG_FILE='sample.csv' NEW_FILE='new_sample.csv'

gnuplot格式时间戳日期和时间AM PM带awk

sombody能否帮助我使用awk格式化gnuplot的以下时间戳: Jul 9, 2020 11:59:59 AM Jul 9, 2020 12:00:00 PM Jul 9, 2020 1:22:24 PM 我一直在尝试修改前一篇文章中显示的代码示例,但它对我不起作用 plot "< awk '{time = $4; if(substr($5,1,2) == PM \ && substr(time,1,2) < 12) add = 12; else a

AWK:如何自动增加数字?

我有一个文件。文件内容是: 2021012600088000003 | 3 | 33.00 | 20210126 | 15:30 1 | 20210126000000000000002207 | 122021016080109 | 1000 | 1000000000000319 | 100058110000000325 | 402041000012 | 402041000012 | PT07 | 6210670000123645|收款方户名|2021-01-26 | 2021-01-26 | 1

我的awk脚本don';使用0打印0和NR

这是我的剧本。如何强制我的脚本也打印零。这对我很重要。我不知道为什么它不是打印零,我加了一个+0,所以它应该 #!/bin/bash awk 'a=$1/617 {print NR " " a+0}' sum.txt | tee autocor.txt 这是我的意见 1 0 0 1 0 0 0 0 1 这是我的输出 1 0.00162075 4 0.00162075 9 0.00162075 预期产量 1 0.00162075 2 0 3 0 4 0.00162075

否则,如果条件不适用于awk

ping 8.8.8.8-t5-c1 | awk'{if(/Time.*/)打印$1,$2;else if(NR==1)打印“from:$3”} 当我使用这一行时,else if不起作用,它基本上从和ip打印,不管首先是什么,甚至在if条件之前。 我希望它只在TTL足以到达目标时(或者在没有超出生存时间的消息时)打印它 这个命令基本上是我写的traceroute 我不知道为什么,否则如果条件不起作用,我希望得到帮助 整个bash脚本: #! /bin/bash read -p 'IP: ' I

上一页   1   2   3   4    5   6  ... 下一页 最后一页 共 146 页