Articles of awk

Tinydns数据文件用bash更改ip

我正在使用tinydns,并需要dynamic地更改数据文件中的一些IP。 我想为它使用bash脚本。 例如数据文件: +sub1.example.org:282.196.222.245:14400 +sub2.example.org:278.179.280.253:14400 +sub3.example.org:285.117.214.234:14400 bash脚本有两个variables: old="282.196.222.245" new="127.0.0.1" 我期待这个结果: +sub1.example.org:127.0.0.1:14400 +sub2.example.org:278.179.280.253:14400 +sub3.example.org:285.117.214.234:14400 什么是最好的方式来取代旧的IP新(使用awk,sed或smth其他)?

如何打印正则expression式匹配

我的问题是双重的。 首先是打印一个正则expression式匹配。 第二个是实际的正则expression式。 问题1 :我试图将yum grouplist的输出–verbose打印成我可以放入puppet conf文件的格式。 因此,我需要打印更多的比赛,所以sed和grep -o将不起作用(至less不是我所知道的)。 以下是一些输出的例子: Maori Support (maori-support) [mi] Mongolian Support (mongolian-support) [mn] Mynamar (Burmese) Support (burmese-support) [my] Nepali Support (nepali-support) [ne] 我希望包含(* – 支持)的所有输出行被打印出来: 'maori-support': ensure => absent; 'mongolian-support': ensure => absent; 'burmese-support': ensure => absent; 'nepali-support': ensure => absent; 我已经完成了手动完成,但我想知道如何作为一个单行的知识。 我试过AWK和Perl无济于事。 我能够得到的最接近的是使用perl像这样: $ yum grouplist –verbose | perl […]

将历元(秒)格式的datereplace为日志文件中的正常

我在一台试图从日志文件中读取的Ubuntu机器上,发现日志包含时间格式(秒)的date和时间。 如何将这些date的数字转换成命令行的可读格式? 1411622206, HOST ALERT, host-001,DOWN,SOFT,1,CHECK_NRPE, Socket timeout after 10 seconds. 1411622586, HOST ALERT, host-001,DOWN,SOFT,1,CHECK_NRPE, Socket timeout after 10 seconds. 1411623976, HOST ALERT, host-021,DOWN,SOFT,1,CHECK_NRPE, Socket timeout after 10 seconds. 1411624986, HOST ALERT, host-055,DOWN,SOFT,1,CHECK_NRPE, Socket timeout after 10 seconds. 1411625076, HOST ALERT, host-023,DOWN,SOFT,1,CHECK_NRPE, Socket timeout after 10 seconds. 1411625356, HOST ALERT, host-032,DOWN,SOFT,1,CHECK_NRPE, Socket timeout after 10 […]

在awk中如何在尝试计算之前检查一个定义的值

当c15未定义或为0时,下面的awk行将失败。如何修改它以便在这种情况下它不会尝试计算,而是提供一个错误消息或什么都不做: cat formatted.dsv | awk -F"\t" '{ c12 = $12; c15 = $15; c17 = $17; c16 = $16; c4 = $4; c9 = $9; c5 = $5; c10 = $10; c14 = $14; c8 = $8; c7 = $7 } END { printf "%d\n", ((c12+c17+c16+c4+c9+c5+c10+c14+c8+c7))/c15)*1000 }'

在另外一台linux服务器上通过shell脚本远程执行命令

我有一个shell脚本,从两个date之间的日志文件中提取详细信息,并在输出上执行一个命令以生成一些报告。日志文件位于不同的服务器上,脚本在不同的服务器上执行。 脚本看起来像: #!/bin/sh time1=$1 time2=$2 echo `ssh -i key user@ip -yes cat file | awk '{if(substr($4,2)>="'$time1'" && substr($4,2)<="'$time2'") print $0;}'` > tmp.log `cat tmp.log | some operation to get detail` 预计产出如下: ip1 date1 – – request1 file1 method1 status1 ip2 date2 – – request2 file2 method2 status2 即多行,但生成的输出是单行包含所有的细节,如: ip1 date1 – – request1 file1 method1 […]

将awk结果限制为html请求

我正在使用awk来分析一些访问日志文件。 我目前正在使用以下内容: awk '($9 ~ /404/)' access_log | awk '{print $9,$7}' | sort | uniq -c | sort > 404.txt 其中返回我的访问日志中的所有404出现次数。 但是,它绝对返回所有内容 – 但我只对html页面感兴趣。 我如何修改这个只返回以.html结尾的请求的值?

如何将lsof stat和ps结合起来,在一行bash命令中获得更多的信息

我可以使用lsof来获取顶级打开文件统计进程,如下所示: $ lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr | head -n 5 17955 11945 10282 2786 5980 32152 1920 27803 1786 32107 现在我想用一行bash命令来扩展结果如下, $ lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr | head -n 5 … 17955 11945 java 10282 2786 python 5980 32152 ruby 1920 27803 go 1786 32107 rust 我怎样才能做到这一点?

date格式转换为纪元使用gawk(awk)

我想将文件中的date转换为纪元时间。 示例csv看起来像这样: $ cat test.jtl 2016/09/19 00:31:17.080,238,test1 2016/09/19 00:31:17.154,322,test2 22-Sep-2014 10:32:35.012,222,test3 我已经尝试了以下,但结果只是获取当前的date cat test.jtl | gawk 'BEGIN{FS=OFS=","} {command="date -d \"$1\" +'%s%3N'";command | getline $1;close(command);print}' 但是这只返回当前date。 我认为$ 1(第一个数据列,这是一个date)没有正确传递。 但不知道是什么问题。

sed:如何从path中提取最后两个(或任意数量)的目录

我真的在寻找一个通用的解决scheme,但为了举例,让我们说我正在寻找path中最深的2个目录。 例如:给定一个path/home/someone/foo/bar ,如何使用sed(或awk)来获取foo/bar 如果path的第一部分总是相同的话,这将是简单的,但在我的情况下,我正在寻找一个适用于任意path的expression式,理想情况下,对于任何深度n 。 如果pathless于n (在本例中为2)级别,则命令的行为并不重要。 我今天去做这个,发现它很棘手。 我开始写一个循环来代替它,但是我不能动摇这种在一个命令中可能发生的事情。 我可能是错的。 有任何想法吗?

linux +通过sed或awk或perl从CSV文件创build主机文件

我有以下CSV文件 这个文件定义了哪个Linux机器存在于系统中,并且存在ip 我的目标是从这个文件创build主机文件 请教如何从我的CSV文件创build主机文件(我需要将CSV文件的IP地址匹配到主机文件的第一个字段,然后匹配LINUX名称,并在第二个字段中find这个名称 – 例如1) 备注 – 应该由sed或awk或perl ..执行,我需要在我的bash脚本中写解决scheme CSV文件 , machine , VM-LINUX1 , SZ , Phy , 10.213.158.18 , PROXY , VM-LINUX2 , SZ , 10.213.158.19 , OLD HW , VM-LINUX3 , SZ , 10.213.158.20 , , VM-LINUX4 , SZ , Phy , 10.213.158.21 , , VM-LINUX5 , SZ , Phy , […]