1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#!/usr/bin/env bash
# Copyright (c) 2010-2025. 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.
if [ -z $1 ]
then
echo "Usage: $0 {X.trace}"
exit
fi
TRACE=$1
echo "input: $TRACE"
OUTPUT=${TRACE%.*}.fix.trace
grep ^% -- "$TRACE" > header
DEFEVENTS=( $(awk '/Define/ { print $3 }' header) )
GREP=()
for i in "${DEFEVENTS[@]}"
do
GREP+=( -e "^$i " )
done
GREP2=( -e $'^%[ \tE]' "${GREP[@]}" )
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"
|