假设我有一个如下所示的日志文件或文本文件
16 Dec 2014 11:20:00 [INFO] com.example.Test.java PlaneName: JetAirways360 This flight just cleaned up
16 Dec 2014 11:22:01 [INFO] com.example.Test.java PlaneName: JetAirways360 This flight is in queue
16 Dec 2014 11:23:02 [INFO] com.example.Test.java PlaneName: JetAirways360 This flight passengers loaded
16 Dec 2014 11:24:03 [INFO] com.example.Test.State.java PlaneName: JetAirways360 This flight ready to take off
16 Dec 2014 11:25:00 [INFO] com.example.Test.State.java PlaneName: JetAirways360 This flight took off
17 Dec 2014 11:25:00 [INFO] com.example.Test.java PlaneName: JetAirways360 This flight returned back
现在想象一下,我这个日志文件已经完全填满了很多航类信息。听说要查找特定的航类信息。现在我想 grep 查看以下详细信息
16 Dec 2014 11:20:00 This flight just cleaned up
16 Dec 2014 11:22:01 This flight is in queue
16 Dec 2014 11:23:02 This flight passengers loaded
16 Dec 2014 11:24:03 This flight ready to take off
16 Dec 2014 11:25:00 This flight took off
17 Dec 2014 11:25:00 This flight returned back
如何使用 grep 和 sed 命令执行此操作?
最佳答案
这可能对你有用(GNU sed):
sed -rn '/JetAirWays360/s/(.{21}).{54}/\1/p' file
这会将文件的第一部分保存在反向引用中,并用它替换剩余文件的一部分。
关于linux - 如何使用 grep 和 sed 打印多个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27512758/