Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

  • »horida« ist der Autor dieses Themas

Beiträge: 10

Registrierungsdatum: 14.11.2017

Derivat: Kein Ubuntu-Derivat

Version: unbekannte Version

Architektur: 32-Bit PC

Desktop: XFCE

Andere Betriebssysteme: Knoppix 7.6.1 (mit lt. uname Linux Microknoppix 4.2.6 )

  • Nachricht senden

1

08.06.2018, 12:50

kleines Script um die Ausgabe von diff etwas zu strukturieren

(mir hilfts)

Quellcode

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/bash
# 08.06.2018 difd 
# Dieses Script (ich nenne es jetzt difd) ist zur freien Verfügung, aber (natürlich) ohne jedliche Gewährung also Garantie - 
# egal welchen Schaden es auslösen könnte - eben typisch open source
#
# Zweck des Scripts ist es, die Ausgabe (von diff) etwas zu ordnen
# Aufgerufen wird es genauso wie diff (gemeint ist hier diff ohne Optionen)
# Man kann es bei sich z.B. in /usr/local/bin kopieren, ändern ... (wer benutzt schon vim ?!? ...) 
# Auch den Text in "$zwi6" (s.u.) kann man anpassen - z.B. ins Englische Französische ... übertragen
# Auch Anregungen Rückmeldungen sind (natürlich) möglich. 
# z.B. könnte man zu Beginn abfragen, ob diff.out | "$1" | "$2" existieren oder "$#" != 2 (und dann gegebenenfalls. abbrechen)
#
zwi1=`mktemp --suffix=.txt`;
zwi2=`mktemp --suffix=.txt`;
zwi3=`mktemp --suffix=.txt`;
zwi4=`mktemp --suffix=.txt`;
zwi5=`mktemp --suffix=.txt`;
zwi6=`mktemp --suffix=.txt`;
t='------------------------------------------------------------------------------------------------------'
{ echo -e "zwi1=$zwi1\n ";time nice -19 diff -qrs "$1" "$2"; echo -e "\nRC von diff -qrs : $?\n\n$t "; } 2>&1 | tee "$zwi1" 2>&1 ;
#
#  das Wesentliche ist jetzt schon gemacht (nämlich von diff). 
#  Was folgt, ist nur aufarbeiten,ordnen,umorganisieren des Ergebnisses in $zwi1
#
echo -e "\ndiff.out\nfolgendes aus sed wurde nicht zugeordnet :\n" >> diff.out; 
cat >  "$zwi6" <<sixis
s#Dateien $1/\(.*\) und $2/\1 sind verschieden.#\1#w $zwi2
t
s#Dateien $1/\(.*\) und $2/\1 sind identisch.#\1#w $zwi3
t
s#^Nur in $1\(.*\)\.#\1#w $zwi4
t
s#^Nur in $2\(.*\)\.#\1#w $zwi5
t
p
sixis
# manchmal schreibe ich Begleittext (Kommentare) in eine Datei "in" - darum :
{ if test -r in ;
  then echo -e "\n\n-------------- Liste der Datei in ------------\n" ; cat in ;
      echo -e "\n--------- Ende Liste der Datei in ------------" ;
  fi
echo -e "Aufruf von difd mit \n\$# ($#) \$@ ($@)\nDatum `date` \npwd (`pwd`)\n\nVerzeichnis f1="$1"\nVerzeichnis f2="$2"\n";
echo -e "Es folgt die "Rest"-Ausgabe von sed - also alles was nicht geordnet und aussortiert wurde - nicht schlimm\n$t";
sed -nf "$zwi6" "$zwi1";cat $zwi6;
echo -e "\n$t\nEnde     der "Rest"-Ausgabe von sed - also alles was nicht geordnet und aussortiert wurde";
z2=$(echo `wc -l $zwi2` | awk '{ print $1 }' - );
z3=$(echo `wc -l $zwi3` | awk '{ print $1 }' - );
z4=$(echo `wc -l $zwi4` | awk '{ print $1 }' - );
z5=$(echo `wc -l $zwi5` | awk '{ print $1 }' - );
echo -e "$t\nZusammenfassend die Ergebnisse :\nAnzahl der verschiedenen Dateien (in beiden Verzeichnissen) : $z2\
\nAnzahl der Dateien die identisch sind (in beiden Verzeichnissen) : $z3\
\nAnzahl der Dateien die es nur im Verzeichnis f1="$1" gibt : $z4\
\nAnzahl der Dateien die es nur im Verzeichnis f2="$2" gibt : $z5\nEnde der Zusammenfassung";
echo -e "$t\nAnzahl der verschiedenen Dateien (in beiden Verzeichnissen) : $z2";         cat $zwi2;
echo -e "$t\nAnzahl der Dateien die identisch sind (in beiden Verzeichnissen) : $z3 ";   cat $zwi3;
echo -e "$t\nAnzahl der Dateien die es nur im Verzeichnis f1="$1" gibt : $z4";         cat $zwi4;
echo -e "$t\nAnzahl der Dateien die es nur im Verzeichnis f2="$2" gibt : $z5";         cat $zwi5;
echo -e "$t\nhier ist das normale Ende\n";  }  > diff.out; 
vim '+syntax on' '+set nowrap' diff.out "$zwi1";
#vim '+syntax on' '+set nowrap' diff.out "$zwi1" "$0"; # falls Ihr "difd" nach /usr/local/bin kopiert habt, könnte man ev. so schreiben
rm  -v $zwi{1..6} ; echo -e "# rm \$zwi{1..6} : RC : $? ";



Also : leider kriege ich was (noch) nicht gebacken - im code heißt es (offensichtlich) an mehreren Stellen - immer in echo-Befehlen (hier ein Beispiel) :
echo -e "$t\nAnzahl der Dateien die es nur im Verzeichnis f2="$2" gibt : $z5"; cat $zwi5;

aber es müßte heißen :
echo -e "$t\nAnzahl der Dateien die es nur im Verzeichnis f2=\"$2\" gibt : $z5"; cat $zwi5;
entsprechend :
echo -e "Es folgt die "Rest"-Ausgabe von sed - also alles was nicht geordnet und aussortiert wurde - nicht schlimm\n$t";
echo -e "\n$t\nEnde der "Rest"-Ausgabe von sed - also alles was nicht geordnet und aussortiert wurde";
echo -e "$t\nAnzahl der Dateien die es nur im Verzeichnis f1="$1" gibt : $z4"; cat $zwi4;

aber irgendwie widersteht mir der "Editor" hier - darum - korrigiert es bitte selber - sorry



MfG

Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »horida« (09.06.2018, 02:30)