文本:
All rights reserved. ERROR: ORA-00257: archiver error. Connect internal only, error. SP2-0751: Unable to connect to oracle. Exiting SQL*Plus
我的预期输出:
ERROR: ORA-00257: archiver error.
我的命令:
sed 's/.*\(ERROR:.*\.\).*/\1/'
实际输出:
ERROR: ORA-00257: archiver error. Connect internal only, error. SP2-0751: Unable to connect to oracle.
我怎样才能调整我的 sed 命令来只显示这个:
ERROR: ORA-00257: archiver error.
最佳答案
与其使用所有字符 (.*
) 后跟一个点,不如使用“除点之外的所有字符”([^\.]*
)后跟一个点:
sed 's/.*\(ERROR:[^\.]*\.\).*/\1/'
关于提取文本的Linux命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34293398/