Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Simplify (and maybe correct) script.
[simgrid.git] / tools / fix-paje-trace.sh
index 211a727..96b2bb1 100755 (executable)
@@ -1,7 +1,6 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
-# Copyright (c) 2010, 2014. The SimGrid Team.
-# All rights reserved.
+# Copyright (c) 2010-2019. The SimGrid Team. All rights reserved.
 
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the license (GNU LGPL) which comes with this package.
@@ -14,24 +13,22 @@ fi
 
 TRACE=$1
 echo "input: $TRACE"
-OUTPUT=`echo $TRACE | cut -d\. -f1`.fix.trace
+OUTPUT=${TRACE%.*}.fix.trace
 
-cat $TRACE | grep ^% > header
-DEFEVENTS=`cat header | grep Define | awk '{ print $3 }'`
+grep ^% -- "$TRACE" > header
+DEFEVENTS=( $(awk '/Define/ { print $3 }' header) )
 
-GREP=""
-GREP2=""
-for i in $DEFEVENTS
+GREP=()
+for i in "${DEFEVENTS[@]}"
 do
-  GREP="/^$i /d; $GREP"
-  GREP2="-e '^$i ' $GREP2"
+  GREP+=( -e "^$i " )
 done
-GREP="/^%\ /d; /^%     /d; /^%E/d; $GREP"
+GREP2=( -e $'^%[ \tE]' "${GREP[@]}" )
 
-cat $TRACE | eval grep $GREP2 > types
-/bin/sed -e "$GREP" $TRACE > events
-cat events |  sort -n -k 2 -s > events.sorted
-cat header types events.sorted > $OUTPUT
-rm types events events.sorted header
+grep "${GREP[@]}" -- "$TRACE" > types
+grep -v "${GREP2[@]}" -- "$TRACE" > events
+sort -n -k 2 -s < events > events.sorted
+cat header types events.sorted > "$OUTPUT"
+rm -f types events events.sorted header
 
 echo "output: $OUTPUT"