Man*_*mar 2 command-line bash grep awk
谁能帮我这个:
我试图通过匹配字符串来提取时间戳。为此,我使用了 grep/awk 命令的组合。由于刺痛在 [1] 之前有 4 个 spces,在 [1] 之后有 1 个,我很困惑如何解决它。我是编程新手,所以在这里需要一些帮助。
IS="$(grep 'Starting [1] TaskInit' process.log | awk '{print $4}')"
echo "$IS"
Run Code Online (Sandbox Code Playgroud)
目的:它应该匹配 process.log 文件中的字符串,并且应该打印出与该行相关的时间戳。
这里的空间不是问题,它应该可以正常工作。
但是括号[需要在正则表达式中转义。所以写:
grep 'Starting \[1] TaskInit' process.log
Run Code Online (Sandbox Code Playgroud)
在您的情况下,由于您想匹配固定字符串而不是正则表达式,因此应该grep -F改用。那么你不需要逃避:
grep -F 'Starting [1] TaskInit' process.log
Run Code Online (Sandbox Code Playgroud)