MST

星途 面试题库

面试题:Bash利用awk和grep处理复杂格式文本

假设存在一个日志文件`log.txt`,其格式如下: [2023 - 01 - 01 10:00:00 INFO] Starting application [2023 - 01 - 01 10:01:00 ERROR] Failed to connect to database [2023 - 01 - 01 10:02:00 INFO] User logged in 请通过Bash中awk与grep结合的命令,筛选出所有`ERROR`级别的日志,并只输出时间和错误信息部分,格式为`时间 - 错误信息`。
37.5万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
grep 'ERROR' log.txt | awk -F'[] []+' '{print $2 " - " $4}'

解释:

  1. grep 'ERROR' log.txt:使用grep命令从log.txt文件中筛选出包含ERROR的行。
  2. awk -F'[] []+' '{print $2 " - " $4}'awk命令以]和空格作为分隔符,$2表示分隔后的第二部分,即时间;$4表示分隔后的第四部分,即错误信息,然后按照时间 - 错误信息的格式输出。