我是初学者并且学习grep,所以这里是我的问题.使用Linux,我想从一个只显示我指定的文件的粗壮行.例如,某些列显示以秒为单位的持续时间,并且我只想显示秒数超过50秒的那些行.我可以通过使用cut/sort/uniq/sort来计算出多少行,但它并不像在同一时间拥有整行信息一样有用.这只是一个例子.我想抓住时间超过13.9秒的行.
64 bytes from hugs05s22-in-f8.1e100.net (100.100.239.204): icmp_seq=1 ttl=55 time=13.9 ms
64 bytes from hugs05s22-in-f8.1e100.net (100.100.239.204): icmp_seq=2 ttl=55 time=13.2 ms
64 bytes from hugs05s22-in-f8.1e100.net (100.100.239.204): icmp_seq=3 ttl=55 time=13.9 ms
64 bytes from hugs05s22-in-f8.1e100.net (100.100.239.204): icmp_seq=4 ttl=55 time=18.3 ms
64 bytes from hugs05s22-in-f8.1e100.net (100.100.239.204): icmp_seq=5 ttl=55 time=14.3 ms
64 bytes from hugs05s22-in-f8.1e100.net (100.100.239.204): icmp_seq=6 ttl=55 time=17.7 ms
64 bytes from hugs05s22-in-f8.1e100.net (100.100.239.204): icmp_seq=7 ttl=55 time=13.4 ms
Run Code Online (Sandbox Code Playgroud)
我可以用18.3/14.3/17.7拉出整行(假设时间=不是列的一部分(或者对于它来说也是如此)).任何有关awk,sed或grep的帮助都将不胜感激.
正则表达式不适用于数字比较(你可以这样做,但它会很麻烦).使用awk
,它有算术运算符.
awk -F'[ =]' '$11 > 50'
Run Code Online (Sandbox Code Playgroud)