我在Mac上,在给定目录中,我有466个.txt文件。在文件中,某处出现了这一行:
Host2 Total size: 1443504 bytes (1.377 MiB)
该行可以在文件中的任何位置。
如果该行没有显示,那么这一行
[LOGIN]: 2 NO LOGIN Failed - Invalid username or password.
我需要遍历所有这些文件并计算总字节数。我还需要创建一个记录NO LOGIN错误的文件名列表。
我知道我可能需要read和grep,但这超出了我的CLI深度。非常感谢帮助!
答案 0 :(得分:2)
您可以使用awk
提取第4个字段中的字节数并求和:(感谢@mark-setchell)
awk '/^Host2 +Total +size: +[0-9]+ bytes / { sum += $4 } END { print sum+0 }' *.txt
您可以使用grep
获取包含“NO LOGIN Failed”的文件列表:
grep -lF 'NO LOGIN Failed' *.txt
我使用了一些懒惰的模式。
如果你看到误报,
让他们更严格。
例如,最后一个grep
可以与该行完全匹配:
grep -lFx '[LOGIN]: 2 NO LOGIN Failed - Invalid username or password.' *.txt