小编asa*_*sad的帖子

awk 每行打印 x3 次?

有了这个 awk 单行 awk '{lines[NR]=$0}{for(i=0;i<3;i++) print $lines[i]} awk.write

awk.write

this line 1 no un1x
this lines 22 0
butbutbut this 33 22 has unix
but not 1
THIS is not
butbutbut ffff
second line
Run Code Online (Sandbox Code Playgroud)

打印为

this line 1 no un1x
this line 1 no un1x
this line 1 no un1x
this lines 22 0
this lines 22 0
this lines 22 0
butbutbut this 33 22 has unix
butbutbut this 33 22 has unix
butbutbut this 33 22 has unix …
Run Code Online (Sandbox Code Playgroud)

awk

0
推荐指数
1
解决办法
1441
查看次数

使用sed或脚本解析,重新格式化日志文件?

我有一个案例,我需要一个文件post-process.样本格式如下: -

bigspeedpro.com Intel::DOMAIN   from http://malc0de.com/bl/BOOT via intel.criticalstack.com     F
1.1.1.1 Intel::DOMAIN   from http://abcd.com/bl/BOOT via intel.criticalstack.com     F
Run Code Online (Sandbox Code Playgroud)

预期产量为: -

1.1.1.1 abcd
Run Code Online (Sandbox Code Playgroud)

解析如下: -

  • 任何不以IP地址开头的内容都会删除该行
  • 如果以IP地址开头

    • 删除Intel :: DOMAIN
    • 之间根据以下字符串出现 from F替换它
    • 例如malc0de或abcd

我想使用,sed但我不知道如果sed可以用来匹配多个字符串,例如malc0de或abc或许我需要一个更完整的脚本然后只是一行存储字符串值在数组中.任何的想法?顺便说一句,使用的例子sed最受欢迎.

至今

  • 我知道d在sed中使用我可以删除行并将输出重定向到文件
  • 我知道如何匹配正则表达式而不是IP地址[^ a-zA-Z]
  • 我基于多项选择或字符串而无法更换
\#!/bin/bash          
sed -i s/\[a-zA-Z]\/d test ./infile > testme.txt
sed -i s/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/s+\Intel::DOMAIN\\s*from(.*?)\s+F\1malc0de
Run Code Online (Sandbox Code Playgroud)

或者我想保存像ARRAY =(malc0de abcd)

然后代替捕获组我可以做$ {ARRAY [2]}它会起作用吗?或者我可以做一些像.net子串匹配之间的东西 fromF我复制结果的字符串变量.然后搜索我的字符串,例如malc0de,如果找到替换匹配结果的搜索模式?但我不知道bash ......

更新 使用awk脚本我很干净

1.1.1.1 www.abc.com
1.1.2.2 def.com
2.2.2.2 mnx.dbc.net
Run Code Online (Sandbox Code Playgroud)

但是,我希望将ip地址后的第二列缩短为我自己选择的字符串,例如在第二列中我只接受

abc def …

regex linux bash ubuntu sed

-1
推荐指数
1
解决办法
181
查看次数

标签 统计

awk ×1

bash ×1

linux ×1

regex ×1

sed ×1

ubuntu ×1