我得了流感,但这不是借口。我对此非常着迷(我确信解决方案很简单)。我得到了这个输入文件
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
我有以下记录结构:
ID Bezeichner OGD-Kurzname CKAN Feld Anzahl
Bezeichnung der
2 schema_name extras:schema_name 1
Metadaten
我在这里有一个家庭作业。作为尽职调查,在过去的2.30小时里,我一直在浏览网页,阅读awk教程以找到解决方案,但毫无希望。
下面是我想到的一句话:
awk'/[A-Z]/{print$NF}'
我在一个脚本中有一个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
下面的命令
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命令中包含一个dig查找,以查找主机名的IP。不幸的是,mount命令有时包含IP,有时包含主机名。我尝试了以下操作,但它有一个不需要的换行符、不需要的返回代码,如果有IP地址,则无法工作:
主机名
echo "example.com:/remote/export on /local/mountpoint otherstuff" | awk -F'[: ]' '{if(/^\//)print system("dig +s
我有一个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程序中使用的函数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函数用于在分隔符上拆分字符串
你好
我有下一个代码:
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
鉴于此,我想
打印@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
我有一个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))
这就是我所拥有的,但它是
我使用以下脚本查找mongodb服务器上正在运行的连接数
mongostat | awk 'BEGIN{FS=" *"}{print "Number of connections: "$19}'
但是每10行,$19携带一个字符串,表示一个字段名
仅当$19为整数时,我才想将脚本修改为打印
我可以尝试FS=“*[^0-9]*”,但它匹配以数字开头的列,而不是进行选择性打印。使用
mongostat | awk -F ' *' '$19 ~ /^[0-9]+$/ { print "Number
我试图找出我的表格文件中5个字段4-8的值是否存在两两差异。缺少的数据由字符串na表示。我希望打印这些字段中具有多个值的任何行,忽略缺少的数据,例如,下面示例第一行中的T和G,或者如果包含na,则打印两个以上的值
下面是我正在使用的数据文件中的几行:
2 1150 T na na na T G
2 1151 C na na na T C
2
我有一个非常大的文件,看起来像这样:
chr1 345142 GACGGGGGTG/1
chr1 345241 GACGGGGGTG/2
chr1 569297 CGCCCCCCCC/1
chr1 569449 CGCCCCCCCC/2
chr1345142 GACGGGGGTG/1
chr1345241 GACGGGGGTG/2
chr1569297 CGCCCCCCCC/1
chr1569449 CGCCCCCCCC/2
我希望它看起来像这样:
chr1 345142 GACGGGGGT
我有以下格式的文件:
ID Start End NUM Length
ID3 80203644 80329880 num=12 length=126,237
ID3 82010803 82148878 num=13 length=138,076
ID8 10367405 10471540 num=6 length=104
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 {
见下一行:
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
我想把这样的东西复制到剪贴板
$ command1
$ command2
如果您运行history,您将以相反的顺序获得命令,因此我只想从尾部跳过一些行,并将输入行号替换为“$”。正如您可能怀疑的那样,当您必须记录工作流或编写文档时,这是一种非常有用的速记方法
例如:
$ history
1340 pass
1341 pass insert m clouds/cloud9
1342 pass insert -m clouds/cloud9
1343 sudo service
我们必须处理大量的*.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,我想打印第一列中以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
或者,如果您希望显式引用第
一旦我确定了字段的数量,我就可以用if语句来编写,但我相信AWK的强大功能可以简化这一过程。我希望if语句和下面的输出中的逻辑是清晰的
确定文件1中从第一个节点$2到第二个节点3的链接号
如果适用,确定文件1中从第二个节点$3到第三个节点4的链接号
如果适用,在文件1中确定从第三个节点$4到第四个节点5的链路号
……等等
文件1:路径表
文件2:链接表
输出:
网络地图
编辑匹配逻辑:
以文件1中的一行为例:
N1-N4 NODE3 NODE4
这应该与文件2中的这一行相匹配:
NOD
我想在模块后面找到单词,在那里
模块和要匹配的字之间可以有一个或多个空格
待匹配单词与下一个单词之间的单个空格
要匹配的单词可以是任何模式
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
我有两个独立的文件,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向终端传递一个命令,该命令是由其他变量连接在一起的字符串
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
见鬼。我发现你的样品
我希望随机洗牌一个文件的行,然后打印成不同的五个文件
但我一直保持在文件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
我有一个格式类似的文件(实际上有更多的列和行)
我想知道在$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
假设我有一个如下所示的文件内容
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
输入:
“胡说八道”胡说八道“胡说八道”胡说八道“胡说八道”
所需输出:“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,我想打印线需要打印< /代码>,但它也打印空白行。我怎样才能排除它
脚本:test.awk
资料
结果
使用NF变量
你不是在问以空格开头的行,而是在问如何丢弃空行。实际上,空行没有字段,因此可以使用内置的NF变量丢弃至少没有一个字段的行。例如:
$ awk 'NF > 0 && !/^(start|#)/ {print "Result: " $0}' /tmp/corpus
Result: Need to prin
我得提取几个单词的最后一个音节
这些词总是以辅音结尾
可能的辅音是:“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 '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命令中去掉$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
我有一个类似下面的文件
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做以下乘法:
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 =
当第一行与sed匹配时,我想在文件的顶部插入一行,在底部插入另一行。我试过下面这句话,但没有成功,也没有改变。它插入第一行,但不插入最后一行:
file.txt
REMARK
Blah
Blah
blah
Sed:
谢谢
马里奥你能试试下面的awk吗?如果这对你有帮助,请告诉我。下面将在第一行匹配后插入一个字符串MODEL,该行中包含字符串备注。在最后一行读取后还插入字符串ENDMODEL
awk 'FNR==1 && $0=="REMARKS"{print $0 ORS "M
我试图在shell中使用AWK命令查找表,用另一个与第一个文件匹配的列值替换column
awk 'FNR==NR{a[$1]=$1,a[$2]=$2;next}{print a{$1],a[$2]}' file1.txt file2.txt
我没有取得任何成功。请帮助我使用AWK命令语法,该语法将提供所需的输出结果
File1.txt
VALUE_TCP21:Z9E1AG.PNT ABC1 SILVER
VALUE_TCP21:Z9E1CU.PNT
我有一个52列的文件。我想将第11列从0替换为1。我的文件中的所有数据都以“|”分隔。我试过下面的命令
awk -F \| '{$11=1; print}' input_file.txt
我已将第11列替换为上述命令。但该文件的输出将分隔符更改为“空格”。我不能仅仅从outfile中删除空格,因为几乎没有列也有有效的空格。在awk脚本的BEGIN子句中,将字段分隔符设置为与-F标志设置的FS相同,否则它将设置为的默认值。
将设置为与awk脚本的BEGIN子句中的FS(使用-F标志设置的字段分
我在下面有一个输入文件,其中字段分隔符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 '{ 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)
我有几排像这样的
[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
是否有
我有一个json文件,我想在括号中加入x行
cat testfile.json
{
"CacheStatistics_ReadHits": 0,
"CacheStatistics_ControllerPrefetchRemaining": [
0,
0
],
"CacheStatistics_ControllerReadMisses": [
0,
0
]
}
我尝试了以下方法,应该执行换行符替换,首先从以“[”结尾的行开始,一直到结束括号“]”
我有两个文件,并试图在列的基础上比较这些文件
文件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中又具有属性
我试图从两个方面来解决这个问题
1) 定义数组列表[项目编号、组件编号][属性]。
2) 定义一个数组列表[项目编号][组件编号][属性]。
这在很多方面都很有趣,因为我注意到(2)保持了插入顺序,而(1)没有。我知道阵列在awk中是关联的,这很可能是巧合。然而,由于插入顺序在我的案例中很重要(同时,我想了解更多关于awk的信息),我想知道是否会发生这种情况以及原因
有什么想法吗?
溴
Patrik两种方法都没有保留任何关
标签: Awk
shechofreebsdxargs
我有以下文件:
%cat temp.csv
2019 11 16
2019 11 17
2019 11 18
2019 11 19
2019 11 20
2019 11 21
2019 11 22
2019 11 23
2019 11 24
2019 11 25
2019 11 26
我想执行以下命令:
myvar1="foo"
myvar2="bar"
./test foo 2019 11 16 bar
./test foo 2019 11 17 ba
下面提供的方法3通过测试更快,将预计运行时间从2-3天减少到40%
将该子字符串中的每个字符替换为N或N(保留
案例)
样本输出:
CACTGCTGTCACCCTCCATGCACCTGCCCACCCTCCAAGGATCNNNNNNNCACTGCTGTCACCCTCCATGCACCTGCCCACCCTCCAAGGATCaagctCCgaTNNNNNNNNNNNNGgnnnnnnnnnnnnnnnnnnnNNNNNNNNNNNNNNNNNNNNNNnnnnnnNNNNNNNNNNnnnnnnNNNN
我有一个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'
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
我有一个文件。文件内容是:
2021012600088000003 | 3 | 33.00 | 20210126 | 15:30
1 | 20210126000000000000002207 | 122021016080109 | 1000 | 1000000000000319 | 100058110000000325 | 402041000012 | 402041000012 | PT07 | 6210670000123645|收款方户名|2021-01-26 | 2021-01-26 | 1
这是我的剧本。如何强制我的脚本也打印零。这对我很重要。我不知道为什么它不是打印零,我加了一个+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
conditional-statements
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 页