Advertisement
Guest User

Untitled

a guest
Jul 31st, 2014
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.90 KB | None | 0 0
  1. #!/bin/bash
  2. file=$1
  3. tmp="/tmp/$$.tmp"
  4.  
  5. function insert_header() {
  6. sed '1s/$/#'"$1"'/g' "$file" > "$tmp"
  7. cat "$tmp" > "$file"
  8. head -1 "$file" > "$tmp"
  9. }
  10.  
  11.  
  12. for var in $(cat "$file" | cut -f 12 -d "#" | tr -d '"' | grep -Eo '\|[0-9|A-Z]+' | tr -d '|' | sort -u) ; do
  13.  
  14.     echo -n "Processando variável ${var}..."
  15.  
  16.     insert_header $var
  17.  
  18.     while read linha ; do
  19.          count=$(echo $linha | grep -Eo "\|${var}+\|[^0-9 ;A-Z)]+[0-9A-Z]+" | tr -d '|' | sed 's/<>/=/g' | cut -f 2 -d "=" | wc -l)
  20.  
  21.          if [[ "$count" -eq "0" ]] ; then
  22.             echo "${linha}#"
  23.          else
  24.             while read val ; do
  25.                  echo "${linha}#${val}"
  26.             done < <(echo $linha | grep -Eo "\|${var}+\|[^0-9 ;A-Z)]+[0-9A-Z]+" | tr -d '|' | sed 's/<>/=/g' | cut -f 2 -d "=")
  27.          fi
  28.     done < <(tail -n +2 "$file") >> "$tmp"
  29.  
  30.     cat "$tmp" > "$file"
  31.  
  32.     echo " OK"
  33.  
  34. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement