我有一个简单的日志文件,非常困惑,我需要它整洁。该文件包含日志头,但都混杂在一起,因此我需要根据日志头对日志文件进行排序。没有静态的行数,这意味着文本文件的每个标题都没有固定的行数。我正在使用AWK整理标题。
日志文件如下所示:
Car LogFile Header
<text>
<text>
<text>
Car LogFile Header
<text>
Car LogFile Header
<and so forth>
它将像这样输出:
Car LogFile Header
<text>
<text>
<text>
-------------------
Car Logfile Header
<text>
<text>
我已经完成/搜索了一个简单的代码,但是它似乎没有用。有人可以指导我吗?谢谢!
#!/bin/bash
# usage: pargrep <infile> <searchpattern>
inFile="$1"
searchString="$2"
awk '
BEGIN {
FS="\n"
RS="-----"
}
/'"$searchString"'/ { print }
' ${inFile}
最佳答案
最好使用变量传递而不是尝试正确获取复杂的引用。
#!/bin/bash
# usage: pargrep <infile> <searchpattern>
inFile="$1"
searchString="$2"
awk -v selector=$searchString '
BEGIN {
FS="\n"
RS="-----"
}
selector ~ $0 { print }
' "${inFile}"