2016-09-26 44 views
0

我已经有超过90万个条目的大型日志文件。我想这样做一对夫妇使用grep/AWK东西(如果它甚至有可能):高级GREP/AWK - 出口字符> [X]

我想导出一个新的txt文件为标志的每一行条目“〜”。随着条件:

,当一行/条目使用符号“〜”的2倍以上才把它应该被包括在新的TXT文件。

如何(或者如果可能的话)要做到这一点使用grep/AWK任何想法?

提前致谢!

+2

所以你只是想找到行中有两次'〜'的行?有些样品的输入和预期的输出可能会有助于澄清问题 –

+0

'grep的“〜*〜*〜”日志文件> newfile' – Biffen

+0

其实,使用“〜” 2次或以上线。 :)输入是一个包含每行URL的爬行日志文件。输出应该是相同的,但只应包含含有2个或更多“〜”用途的条目。 –

回答

1

grep -E '~.*~.*~' input > output 

grep -E '(~.*){3}' input > output 
:可以使用grep做
+0

是否有可能为一些并不需要的逻辑条件的具体数字,但更多?如“> 2” –

+0

第二个'grep'中有一个参数(3)。这意味着它需要> = 3(相当于> 2)。 – redneb

+0

太棒了。我会试试这个。顺便说一句,这是我第一次在这里问一个问题,我期待在一周内听到一些意见。喜欢这个社区。感谢agan @redneb。我会试试这个。 –

2

给这个只有一行一试:

awk -F'~' 'NF>3' file > newFile 
  • -F定义字段分隔符。我们定义~
  • 如果有至少两个~ S,该行应至少有3场
  • 如果你想确切2 ~ S上的线,以及,改变NF>3NF>2
+0

只是为了澄清你给的样品中的“NF”? –

+0

@Marc from awk手册页:'变量NF被设置为输入记录中字段的总数.' – Kent

+0

明白了!谢谢。也会尝试一下。我感谢帮助! :) –