【问题标题】:Search for particular fields and print them in new file in unix搜索特定字段并在 unix 的新文件中打印它们
【发布时间】:2013-12-11 06:11:02
【问题描述】:

我正在搜索一行命令来搜索“myfile.txt”中的几个单词,如果模式匹配,则剪切该单词并将其打印到新文件中。

我的文件.txt。

162.23.55.222 - - [07/Dec/2013:00:40:35 +0000] 0.033 POST /view/SBEventListComponentController?componentUid=comp_00008OM8 HTTP/1.1 200 77282 Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11 http://sportsbeta.ladbrokes.com/homepage 6476CC940C83EDF031FF2564EE108993.ecomprodsw012
162.16.87.1973 - - [07/Dec/2013:00:40:34 +0000] 0.131 POST /view/SBEventListComponentController?componentUid=comp_000080KW HTTP/1.1 200 82707 Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11 http://sportsbeta.ladbrokes.com/homepage 6476CC940C83EDF031FF2564EE108993.ecomprodsw012
162.23.22.542, 10.32.30.1 - - [07/Dec/2013:00:40:35 +0000] 0.224 GET /view/content/homepage HTTP/1.1 200 66233 Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11 - 6476CC940C83EDF031FF2564EE108993.ecomprodsw012 

我的 output.txt 必须包含。

162.23.55.222 07/Dec/2013:00:40:35 http://sportsbeta.ladbrokes.com/homepage 6476CC940C83EDF031FF2564EE108993.ecomprodsw012
162.16.87.1973 07/Dec/2013:00:40:34 http://sportsbeta.ladbrokes.com/homepage 
162.23.22.542, 10.32.30.1 07/Dec/2013:00:40:35

如何搜索更多模式并将其重定向到另一个文件。 我不明白为什么要投反对票。我尝试了 cut、grep 和 sed 命令。但没有得到预期的结果。 提前致谢。

【问题讨论】:

  • 您是否确实希望“myfile.txt”的第 1 行和第 2 行中出现的最后一个字段 6476… 仅出现在“output.txt”的第 1 行中?

标签: shell unix command


【解决方案1】:

以下是我认为您所要求的或多或少的方法。输出示例的第一行包含行尾的字段,但第二行不包含 - 我无法立即看到原因

perl -l -n -a -e '($u)=/(http:\S+)/; if ($F[0] =~/,$/) { print "@F[0..1] ", substr($F[4],1) } else { print $F[4]," ", substr($F[3],1)," ", $u}' infile.txt infile.txt > outfile.txt

【讨论】:

  • 感谢@Vorsprung。在第一个字段中,如果字符为“,”,我需要继续并将其仅作为字段一。就像在第三行。知道我需要改变什么吗?
  • 抱歉不知道,你的解释对我来说没有意义:)
  • myfile.txt第三行有两个IP地址。使用上面的代码,我缺少一个 IP 地址,我得到 162.23.22.542, 07/Dec/2013:00:40:35 。如何获取第三行的两个IP地址??
  • 对其进行了修改以考虑到这一点
猜你喜欢
  • 1970-01-01
  • 2014-12-28
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
  • 2017-07-07
  • 1970-01-01
  • 2018-11-18
  • 1970-01-01
相关资源
最近更新 更多