小编use*_*413的帖子

bash:grep只有符合某些条件的行

我试图在第三个字段符合某些条件的文件中插入行.我尝试使用grep但没有运气过滤掉文件中的字段.我有一个充满这样的记录的文件:

12794357382;0;219;215
12795287063;0;220;215
12795432063;0;215;220
Run Code Online (Sandbox Code Playgroud)

我只需要grep第三个字段等于215的行(在这种情况下,只有第三行)

非常感谢您的帮助!

bash awk grep

4
推荐指数
1
解决办法
5363
查看次数

比较两个大文件

我需要编写一个程序,将两个文件之间的差异写入文件.程序必须循环遍历超过13.464.448行的600 MB文件,检查grep是否在另一个文件上返回true然后将结果写入另一个文件.我写了一个大约1.000.000记录的快速测试,花了一个多小时,所以我猜这种方法可能需要9个多小时.

您对如何加快速度有任何建议吗?我应该使用的任何特定语言?我打算用bash或python来做这件事.

非常感谢提前.

[编辑1]:对不起,当我说两个文件之间的差异时,我并不意味着差异.结果文件采用不同的格式.

逻辑有点像这样:

文件A有297.599行文件B有超过1300万行

我选择从文件A读取的当前行,在文件B上grep它,如果文件B中存在该行,我将把它写入结果文件.顺便说一句,文件A和文件B具有不同的格式.结果文件的格式为文件A.

[编辑2]:我被要求在工作中理想地创建一个bash解决方案,这样我们就不必在必须运行的所有机器上安装python.

这是我的实施方法:

#!/bin/bash

LAST_TTP=`ls -ltr TTP_*.txt | tail -1 | awk '{ print $9 }'`
LAST_EXP=`ls -ltr *.SSMT | tail -1 | awk '{ print $9 }'`

while read -r line; do
   MATCH="$(grep $line $LAST_EXP)"
   echo "line: $line, match: $MATCH"

   # if not empty
   if [ ! -z "$MATCH" ]
   then
      echo $MATCH >> result
   fi

done < $LAST_TTP
Run Code Online (Sandbox Code Playgroud)

这种bash方法需要10个多小时才能完成.您对如何在bash中提高效率有任何建议吗?

非常感谢提前!

python algorithm bash grep large-files

4
推荐指数
1
解决办法
5216
查看次数

从log4j日志文件中提取唯一值

我无法从log4j文件中仅提取匹配的字符串:OPER ^.我可以从日志文件中的两个不同来源获取此值:

2012-01-26 03:06:45,428 INFO  [NP_OSS] OSSBSSGWIMPL6000|**OPR20120126120537008893**|GenServiceDeactivationResponse :: processRequestGenServiceDeactivationResponse() ::
Run Code Online (Sandbox Code Playgroud)

要么:

2012-01-26 03:06:45,411 INFO  [NP_OSS] MESSAGE_DATA = <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:ServiceDeactivationResponse xmlns:ns2="urn:ngn:foo"><MessageHeader><MessageTimeStamp>20120126031123</MessageTimeStamp>**<OperatorTrxID>OPR20120126120537008893</OperatorTrxID>**</MessageHeader></ns2:ServiceDeactivationResponse>
Run Code Online (Sandbox Code Playgroud)

我只需要提取值OPR* 我猜它更容易从第一个中提取它,因为它不涉及解析xml.

非常感谢您的帮助!

bash awk grep sed

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

标签 统计

bash ×3

grep ×3

awk ×2

algorithm ×1

large-files ×1

python ×1

sed ×1