Awk 文件的创建日期

如何返回文件的日期? 像这样的东西不管用,也很难看 ls -l tz1.sql | awk '{print $7$6 $8}' 7Jun10:00 使用逗号分隔字段: ls -l tz1.sql | awk '{print $7, $6, $8}' 当awk读取输入行时,该行在字段分隔符FS上拆分。 因此,在打印行时,必须将这些字段分隔符放回原处。 “,”代表那些FSs 编辑: 如果要将变体与Ignacio Vazquez一起使用,请尝试: stat -c "%y" s.awk | cut

awk,设置FS="&引用;似乎不起作用,有什么需要注意的吗?

好的,我正试图写一个简单的awk来清除一些csv文件中的逗号 下面是几行示例数据 PRD,,,,PEWPRV100D,,,EWPRVU457D,,,,12/31/2011 10:09:14 PM,,,,,5,,,4,, PRD,,,,PEWPRV100D,,,EWPRVU250D,,,,12/31/2011 10:09:23 PM,,,,,67,,,69,, PRD,,,,PEWREF100D,,,EWREFU045D,,,,12/31/2011 10:09:40 PM,,,,

Awk 从模式中分离动作

考虑: $ echo line1 | awk '1END{ print "line2"}' line1 line2 注意1和END之间缺少空格。这是标准,还是我实现awk的一个怪癖?将操作与以下地址分开的语法规则是什么?您可能使用的是旧版本的awk。在原始的awk语言中,不需要在同一行上用分号分隔规则。添加它是为了与操作中对语句的处理保持一致 我发现: 这适用于我使用GNU Awk 4.0.1的情况: $ echo line1 | awk '1; END { print "line2" }'

组合多个awk命令

假设以下输入: $ cat example {many lines of text} Col1 Col2 Col3 foo bar 2 bar baz 3 baz bar 8 bar foo 0 foo baz 9 baz bar 3 {many more lines of text} 以下两个awk代码段解析出我要查找的数据: cat example | awk -v 'RS=\n\n' '/^Col1 /' | awk '$2 == "bar"

AWK-打印每行输入文件的下一个最后一个字段

我有一个输入文件,其内容不断更新 对于不同数量的字段,我试图打印到一个新文件 每行输入文件的倒数第二个字段: awk“{print$(NF-1)}”输出文件 错误: 和 awk:(FILENAME=-FNR=2)致命:尝试访问字段-1 我需要帮助。提前感谢对于没有字段的行(空行或全部空白)NF为0,因此计算结果为$(-1)。此外,如果只有一个字段,您的代码将打印$0,这可能不是您想要的 awk 'NF>=2 {print $(NF-1)}' 应该是awk'NF>1{print$(NF-1

Awk 计数和求和列列表

无法100%确定如何做到这一点。我所拥有的东西不合算 awk -F, '{array[$1]+=$2} END { for (i in array) {print i array[i] }}' gaaa 下面是一个砷化镓的例子 acic 4 acgic 56 acpdc 183 acic 1677 acpicvp acsis 23 hidr 4 hidr 1133 aggr 24 预期结果将是: acic 1681 acgic 56 acpdc 183 acpicvp acsis 23

Awk前一天

不知什么原因我不能得到这份工作?我想比较前一天和当前日期的文件 awk 'FNR==NR{a[NR]=$2;next}{print $1,$2-a[FNR]}' Router_Evi_`(strftime("%y-%m-%d", systime()-86400))`.txt Router_Evi_`(date +"%y-%m-%d")`.txt > temp_plus_minus.txt 谢谢您对awk脚本和shell的$(..)或 `...` 您发出的命令是: awk '....'

Awk 迭代时多列文件的gnuplot操作

我正在使用gnuplot绘制一个包含许多列的文件: plot for [i=2:119] "./file.dat" using 1:i w l lt 9 它工作得很好,但我无法编辑它以打印移动的行。 我想打印这个,其中N是移位值 plot for [i=2:119] "./file.dat" using 1:$i+N w l lt 9 但是我收到了错误(美元上的“^”): 解决方法是使用AWK,但在这种情况下,我也会遇到一些错误。我发现,要记住如何对存储为变量的列号执行操作,或者如果

Awk 如何仅在iperf中显示带宽?

我想知道如何在iperf中只显示带宽值。我使用grep,但它显示整行,如下所示: iperf -c 10.0.0.1 -i 1 -t 100 | grep -i --color Mbit/sec 结果是 [3] 0.0 - 1.0 sec 128 Kbytes 1.05 Mbits/sec [3] 1.0 - 2.0 sec 128 Kbytes 11.5 Mbits/sec [3] 2.0 - 3.0 sec 128 Kbytes 31.5 Mbits/sec 我想要的是 1.05 11.

Awk 计算单个行上字段的出现次数

我试图获取一个有1000多行的文件,对于每一行,我想计算各个字段出现的次数。因此,文件中几行的示例如下所示: 0/0 0/0 0/0 0/0 0/0 0/0 0/1 0/0 0/0 1/1 0/0 0/1 0/1 1/1 0/1 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0 0/0 我的代码是: cat

如果不匹配模式,awk向上移动队列

我不熟悉awk和sed。我有以下几行,如果它与模式不匹配,我想将该行向上移动 文件: 。。。事情就是这样 要使用模式匹配“公司名称”。如果该行没有“公司名称”,请将该行上移 期望输出: company name, address line, city, state, zip, extra info company name, address line, city, state, zip, extra info company name, address line, city, state, zi

Awk-多行匹配,打印文件名和匹配

我有以下awk命令: awk -v RS=! -v ORS= '/abc/ && /def/ {print FILENAME;}' files 这将查找文件中的每个文件,并用“!”分隔文件中的每个记录,然后将记录与“abc”和“def”匹配。然后,上面的代码将打印文件名。如果删除{print FILENAME},如果匹配,它将打印整个记录 文件看起来像: abc1 bce bcd def ! abc2 bce def ! 我想打印出文件名和与“abc”匹配的行。例如: fil

使用awk在条件下连接两行

当fiel的数目与给定的数目不匹配时,我尝试连接两行 以下是输入文件的示例: 1, z 2 3 4 5, w 6 7 这是我想要的结果: 1, z 2 3 4 5, w 6 7 我尝试了以下代码: awk ' { if (NF!=1){ first=$0 getline print first" ",$0} else {print $0} }' $1 以下是我得到的: 2 z 3 4 6 w 7 我不明白为什么我先得到下一行,然后只得到第一行的第二个字段

AWK:根据特定字段值的出现情况,忽略按唯一值分组的行

如果需要,请帮助修改标题和帖子,谢谢 简言之,我希望首先在第一个字段中使用唯一值对行进行分组,然后在基础行组的另一个字段中累积特定值的出现次数。如果出现次数的总和不符合自定义阈值,则应忽略组中的行 具体来说,有了投入 111,1,P,1 111,1,P,1 111,1,P,0 111,1,M,1 222,1,M,1 222,1,M,0 333,1,P,0 333,1,P,1 444,1,M,1 444,1,M,1 444,0,M,0 555,1,P,1 666,1,P,0 所需的输出应为 11

Awk 如果需要,请用一个字符串替换完整路径

我在一个文件中有很多路径,如果有.jpg、.pdf,我需要使用特定字符串更改路径 例如: 我现在有这样的台词: images/2015/somename.jpg images/2012/somefile.pdf 2015/2012年可能是1997年或2010年等-随机年份数。 我想用sed(如果可能的话)这样更改这些行 images/somename.jpg files/somefile.pdf 我这样试过: echo“images/2015/image12345.jpg”| sed的/im

使用Awk删除重复项

我有两个文件new.csv和remove.txt。我使用AWK从生成的任何新csv文件中删除主文件。这些文件是: $ cat new.csv james,smith,bronx,2025555551 adam,stephenson,brooklyn,2025555552 anthony,jackson,queens,2025555553 mary,young,astoria,2025555554 marsha,peterson,madison,2025555555 angie,huff,be

awk:创建具有递增值的列

我有一个文本文件,有3列,像这样 2010-01-03 11:00:00 -134 2010-01-03 11:01:00 -131 2010-01-03 11:02:00 -128 ... 现在我需要以秒为单位的时间步长,而不是现有的时间步长 如何创建一个介于$2和$3之间的新列,填充递增的值(0、60、120…),直到文件结束?根据您的声明和数据,您可能需要: awk '{ print $1, $2, i*60, $3; i++;}' orifil

使用awk命令操作列

我在一个目录中有大约175个制表符分隔的txt文件。我对第一列感兴趣,我想从每个文件的第一列中删除所有重复项,然后将它们作为列打印到新的txt文件中 #this removes all duplicates in column 1 of myFile.txt awk '!x[$1]++' myFile.txt #this copies all coulmn 1 from every file and paste them as columns in a new file #!/bin/b

awk加入脚本让我非常兴奋

我试图使用awk从第一个CSV文件“map.txt”中查找两列(col1=key,col2=value)的值,然后在用文件1的col2替换相同的col3时,使用第二个文件“textile.txt”的col3作为键 示例文件: map.txt a,apple b,pear c,peeps d,gingersnaps e,goop 1,This is one,a 2,This is two,b 3,This is three,c 4,This is four,d 5,This is five,e

Awk 将三行合并为一行

我有问题。首先,我将xlsm转换为tsv。一列有\n分隔字符串,如果我使用xlsx2csv工具,我从这一行收到三行 F.E.: XLSM文件: > 2 LO rofl string_A > 1 HI lol "string| > string_2| > string_3" 在.TSV文件中 > 2 LO rofl string_A > 1 HI lol "string| > string_2|

awk如果某个字段包含特定编号,则打印整行的一行

我有一个巨大的日志文件test.log,它包含50个字段 我想使用awk匹配字段20中的数字“0”,仅当它匹配0时,才打印整行 为了进一步加强这一点,我想匹配2个或更多的领域,如果他们匹配,然后打印整行 请帮忙:) B 其中$20表示字段20,$21表示字段21。谢谢foundart,如果进一步说,如果字段20不是'0',我想打印整行怎么办?@user2301195如果等于的语法是=,你真的无法理解不等于的语法? awk '$20 == 0' your-file.txt awk '$20 ==

使用awk自动递增变量

我正在尝试计算时间段之间的记录数 doa 19560227 19560429 19571001 19571201 19580301 . . . . 20170327 20170401 时间段介于日历年和日历年之间 19560101 to 19561231 19570101 to 19571231 . . . 20170101 to 20171231 每当日期发生变化时,应增加变量。 我尝试了以下代码,但没有得到结果 awk '{ doa=$1 cnt=1956 for (i=1

Awk 转换CSV文件中的历元时间(CentOS)

我想知道如何找到并将EPOCH时间从.CSV转换/替换为人类可读的格式。CSV包含数千行,每行的格式结构如下所示 54383,1,A9,6,13,0600,0,”,0,014922674758192.168.215.52,FA:C1:3F:00:43:97149264787,0,0,0,” 因此,如果我阅读正确,我们的目标列是13和16。withgawk: awk -F, -v OFS="," '{$13=strftime("%c",$13);$16=strftime("%c",$16)};1

如何在awk中扩展字符串

我需要在awk中的字符串末尾添加破折号(-)。破折号的数量是动态的(可以是0到1024之间的任何数字),因此不能硬编码。如何在awk中实现它 在中,可以这样实现: function gen_chars(N) { s=""; for (i=1;i<=N; i++) {s = s "-"}; return s; } 函数gen_chars(N){s=”“;for(i=1;i使用所需的字符创建一个长焊盘,并切割所需的长度,例如 awk -v size=5 'BEGIN {s="-"; for(

Awk 如何基于模式子集tsv文件?

我有两个文件。一个文件是包含多列的选项卡分隔文件。另一个文件是基因名称列表。我必须只提取那些具有文件2中列出的基因的行在文件1中。 我尝试了以下命令,但它提取了所有行: awk 'NR==FNR{a[$0]=1;next} {for(i in a){if($10~i){print;break}}}' File2 file1 文件1: 输入行ID色度位置链参考碱基Alt碱基样本ID HUGO符号序列本体蛋白质序列 3 VAR113_NM-02_肿瘤_DNA chr1 11082255+G T

如何获取每个作业的最后匹配行(awk)

我试图提取每个作业的最后一行(例如,行中的2或6/第一位数字),该行应包含文本“LOADER\u PROCESSED\u COUNT”。 使用下面的代码,我可以得到最后一行字符串,如下所示。但是,我需要打印每个作业的最后一行 你能就这件事给我建议吗 @代码 awk '/LOADER_PROCESSED_COUNT/ {a=$0} END{print a}' tempResult @结果 6/Loader.log/LOADER_PROCESSED_COUNT/99999 @输入文件(te

处理bz2文件并使用awk进行处理

我有一个名为“text.bz2”的文件,其中包含许多我想要处理的记录。我有一个脚本,它成功地处理了一个标准文本文件中的所有数据,并将结果输出到另一个“results.txt”文件,但我当前运行的命令将bz2文件的所有结果输出到命令提示符(与cat一样),创建了results.txt文件,但它是空的 这是我正在运行的cammand: bzip2 -dc text.bz2 | awk ... ' ' > results.txt 解压缩的bz2文件中的数据格式为: field1=xxx;fie

正在尝试打印awk变量

我不是一个很好的awk用户,但在谷歌搜索了几次之后,我决定它将最适合我正在尝试做的事情……唯一的问题是,我无法让它工作。我试图打印出sudoers的内容,同时在sudoers条目之前插入服务器名($I)和逗号,因为我将它定向到一个.csv文件 egrep '^[aA-zZ]|^[%]' //$i/etc/sudoers | awk -v var="$i" '{print "$var," $0}' | tee -a $LOG 这是我得到的输出: $var,unixpvfn ALL = (ro

如何使用awk在多个字段中设置值?

假设我在一个文件(file.txt)中有以下数据: 我想在字段1($1)前面加一个“A”,在字段3($3)前面加一个“B”。我的awk脚本会是什么样子?我试过: awk -F "|" -OFS='|' ' { $1 = "A"$1 $3 = "B"$3 print; } ' file.txt 但这不起作用。结果是: Aone|two|three|four|five|six B 对不起,我不是这里的优秀awk程序员。看来我已经解决了。这与输出字段分隔符(O

通过忽略带有AWK的行来合并两个文件

我有两个文件: 文件1: 文件2: hola l m n o p q 现在我想通过忽略文件2的标题将它们合并到一个文件中,如下所示: a 1 2 3 l m n o p q b 1 2 3 c 1 2 3 d 1 2 3 有人知道怎么做吗 $ awk 'NR==FNR{if(NR>1)a[NR-1]=$0;next}{print $0,a[FNR]}' file2 file1 a 1 2 3 l m n o p q b 1 2 3 c 1 2 3 d 1 2 3 简要说明

AwK将较长的列与下一行对齐,并保持处理的行数相同

嗨,我对这种类型的输入数据有以下问题: 包含以下列的输入文件: 文件1(原始文件) 我尝试使其将长列与下一行对齐,这是在以下代码的帮助下产生的: awk '{for (i = 1; i <= NF; i += 9) print $i, $(i+1), $(i+2), $(i+3), $(i+4), $(i+5), $(i+6), $(i+7), $(i+8), $(i+9)}' file1 @目标是根据您的想法使其输出类似这样甚至更好,但仍然保持相同数量的处理行 7 LINE_A G_V

Awk 如果发现错误,请删除每一行

我有一个包含以下内容的文件格式: 1 6 8 1 6 9 1 12 20 1 6 2 8 2 9 2 12 2 20 2 35 如果在下一行中找到编号(从第2列或第3列,但不是从第1列),我想删除所有行,无论它是在第2列还是第3列,包括找到初始编号的行 我应该将此作为输出: 2 35 我试过使用: awk '{for(i=2;i<=NF;i++){if($i in a){next};a[$i]}} 1' awk'{for(i=2;i请您尝试以下内容 awk '

awk的奇怪行为

我遇到了awk的以下行为,这让我非常困惑: echo "" | awk '{print 15}' 输出 15 13 但是: 输出 15 13 用013、0013、0105和0130替换015分别得到11、11、69和88。浮点数按预期工作,带或不带前导零 我观察到GNU Awk版本3.1.7、4.0.2和4.1.3的这种行为 有人能理解这一点吗?预期的015被视为八进制值 echo "" | awk '{print 015}' ##Octal 13 echo "" | awk '{pr

Awk 删除选项卡文件中的模式

在此处输入代码大家好 我有一个数据框,例如: 我有一个文件,例如: scaffold_1_1 X 2 2 scaffold_24_0 X 9 2 scaffold_15 X 2 2 IDBA_scaffold_30_1 X 2 317 scf7180005161000_2 X 1 2 这个想法就是简单地删除第一个名字中所有名字的最后一个数字部分 但有三种类型的脚手架名称: scaffold_number0_number1 scaffold_

比较2个不同文件的不同列,并在awk脚本中保留顺序

我正在尝试比较两个不同的文件,例如: 文件1: CALL AA CALL AB CALL AC 文件2: 00 AB n 01 AA o 02 AC o 我期望的结果是 输出: AA 01 o AB 00 n AC 02 o 如何在不更改第一个文件的顺序的情况下获得此文件?(最好是在awk中)提前感谢您。更改自 到 输出: AA 01 o AB 00 n AC 02 o 现在不带空列的输出: AA 01 o AB 00 n AC 02 o AA 01 o AB 00 n AC 02

删除awk中字段的空白

我有一个csv,我正在使用awk脚本进行翻译。 其中一个字段有需要删除的空白-但是,我正在使用的当前函数不起作用 grnd_tack_number = gsub(/ /, "", $13) 输入=487 060210996314 期望输出=487060210996314 当前输出=5我建议尝试使用此代码示例进行调试 { grnd_tack_number = $13; print grnd_tack_number; gsub(/ /, "", grnd_tack_numb

Awk 呆呆地看一行字节解释程序,它不';t将1和01视为相同

我有一个长字节序列形式的输入文件,中间有一些注释。我在底部提供了一个例子 我一直在gawk中寻找一个简单的单行程序,只提取和打印一些行,这在一开始很简单: gawk '$4==01' input.txt 当输入文件中的注释行包含数字“1”(不带前缀0)并提取两行时,此操作失败 如何改进一行代码,使“01”匹配而“1”不匹配? 输入示例: 00000.000 00 3E 01 09 87 00000.000 57 3F 00 09 87 // Total Errors: 1 期望输

Awk从另一个数组创建一个新的唯一值数组

我有我的阵列: array = [1:"PLCH2", 2:"PLCH1", 3:"PLCH2"] 我想在array上循环,以创建唯一值的新数组unique,并获得: unique = [1:"PLCH2", 2:"PLCH1"] 我怎样才能做到这一点 编辑:根据@Ed Morton的请求,我在下面展示了我的数组是如何填充的。事实上,这篇文章是我上一篇文章的关键解决方案 在我的文件.txt中,我有: PLCH2:A1007int&PLCH1:D987int&PLCH2:P97

awk匹配两个文件中的前3列并打印文件1中的剩余内容

大家好,刚刚在匹配中遇到了困难,在论坛上尝试了几个匹配提示,但我无法应用其中任何一个,因为我需要将file1中的file2列$1、$2、$3与列$1、$2、$3进行比较,如果存在匹配,只需打印file1中的剩余列以及file2中的列 欢迎提供有关awk代码说明的任何帮助 这不起作用: awk 'NR == FNR { a[$2] = $0; next } { line = a[$2] FS $1; for(i = 2; i <= NF; ++i) line = line FS $i; pr

将两个awk输出相加为单个输出

目前,我使用以下行计算我的wifi连接(名为wlp4s0)的当前下载和上载速度: awk '{if(l1){printf ("%.2f", ($2-l1)/1024/1024); print "MB/s"; printf ("%.2f", ($10-l2)/1024/1024); print "MB/s"} else {l1=$2; l2=$10;}}' <(grep wlp4s0 /proc/net/dev)

awk计数为1';S2&x27;s3&x27;s多列

想知道如何根据$1和$2组合计算,从$3、4、5、6和$7计算1、2、3和4的出现次数 样本输入 Name,Date,XXX,YYY,ZZZ,AAA,BBB ABC,19-10-2020,2,NA,4,3,NA ABC,19-10-2020,NA,3,NA,NA,4 ABC,18-10-2020,1,NA,4,4,NA ABC,18-10-2020,NA,3,NA,NA,4 CDE,19-10-2020,1,NA,4,3,NA CDE,19-10-2020,NA,2,NA,NA,4 CDE,18

Awk 针对大数据优化Bash脚本

我编写了一个bash脚本,试图从两个文件中获取一个新文件 文件1: 1000846364118,9,369,9901,0,2020.05.20 13:20:52,2020.07.14 16:38:11,2021.03.14 00:00:00,U,2020.07.14 16:38:11 1000683648398,9,369,9901,0,2019.05.04 19:50:39,2019.06.23 14:27:17,2019.12.31 23:59:59,U,2020.01.01 01:25:0

AWK/sed-在低于特定值的数字之前在文本文件中写入文本

我有一个文本文件。在这个文本文件中,我有从最低到最高的数字。 输入示例 [ Index 1 ] 1628 5704 32801 61605 71508 90612 102606 我想把这个文件分成两组,第一组我的数字在1到58050之间,第二组我的数字在58051到116100之间,所以当我的脚本找到一个大于58050的数字时,这个程序将写入[索引2] 预期产量 [ Index 1 ] 1628 5704 32801 [ Index 2 ] 61605 71508 90612 1

Awk 提取注释中带有//aa以及//**/

我有一个文件,我需要提取注释中带有/aa以及/*…*/的行,如下所示: //This is me /*Multiple line arguments best way to use*/ Store the variables. Swap it //Done grep "//" file_name | sed 's/\/\///g' 我尝试过这样的单行注释,如下所示: //This is me /*Multiple line arguments best way to

替换为两个文件awk上的条件

使用这些例子: 文件1: rs12124819 1 0.020242 776546 A G rs28765502 1 0.022137 832918 T C rs7419119 1 0.022518 842013 T G rs950122 1 0.022720 846864 G C

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