问题:比较特定参数的节点的预检查状态和后检查状态的文件。
在社区的一些帮助下,我编写了以下解决方案,该解决方案根据“节点 ID”(它恰好是唯一的,也将从文件中提取)从目录中的文件中提取信息。从 Pre/post 文件夹中提取数据后,我根据节点 ID 创建了文件夹并将文件转储到文件夹中。
我的代码来提取数据(数据是从 Pre 和 Post 文件夹中提取的)
FILES=$(find postcheck_logs -type f -name *.log)
for f in $FILES
do
NODE=`cat $f | grep -m 1 ">" | awk '{print $1}' | sed 's/[>]//g'` ##Generate the node-id
echo "Extracting Post check information for " $NODE
mkdir temp/$NODE-post ## create a temp directory
cat $f | awk 'BEGIN { RS=$NODE"> "; } /^param1/ { foo=RS $0; } END { print foo ; }' > temp/$NODE-post/param1.txt ## extract data
cat $f | awk 'BEGIN { RS=$NODE"> "; } /^param2/ { foo=RS $0; } END { print foo ; }' > temp/$NODE-post/param2.txt
cat $f | awk 'BEGIN { RS=$NODE"> "; } /^param3/ { foo=RS $0; } END { print foo ; }' > temp/$NODE-post/param3.txt
done
在此之后,我的结构如下:
/Node1-pre/param1.txt
/Node1-post/param1.txt
等等。
现在我坚持比较$NODE-pre
和$NODE-post
归档,
我曾尝试使用递归 grep 来做到这一点,但我没有找到合适的方法来做到这一点。使用 diff 比较这些文件的最佳方法是什么?
此外,我发现上述数据提取程序非常慢。我相信这不是最好的方法(使用最少的资源)这样做。有什么建议么?