Datei-Reader

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von OsunSeyi, 07.09.2007.

  1. #1 OsunSeyi, 07.09.2007
    Zuletzt bearbeitet: 22.09.2007
    OsunSeyi

    OsunSeyi Foren As

    Dabei seit:
    09.08.2007
    Beiträge:
    94
    Zustimmungen:
    0
    Hallo !
    Hab´ ein Script geschrieben, was vermittels der Enter-Taste alle Text-Dateien in einem Verzeichnisbaum durchblättert und durch drücken von '1 + Enter' die gerade angezeigte Datei zum editieren öffnet.
    Meiner ansicht nach praktisch, wenn man alle Schriftstücke in einem Verzeichnis einsortiert hat, aber zum öffnen einer einzelnen Datei nicht immer ad hoc weiß, wo sie gerade genau steckt.
    Einfach alles durchblättern und öffnen.
    Leider sind meine Programierkentnisse eher noch etwas dürftig...
    Ich erlaube mir mal, das Ganze hier abzudrucken.
    Das Script beruht auf dem (warscheinlich eher schwachsinnigen) Konzept, eine Datei zu generieren (in dem Fall text_tmp), die zunächst (nur beim 1.Mal) ausführbar gemacht werden muß.
    Code:
    #!/bin/sh
      cd
      datei="/home/tom/DAT/D/BIN/BIN_AWK/text_tmp"
      dat="DAT/A"
    # dat=$1
    
    
    for i in `find $dat -type f`; do
    
          # Datei einlesen:
    
    	 DAT="/home/tom/"$i
    	text=$(cat  $DAT | tr -s xX~#_.:- | head -c 1500)
            code=$(file $DAT | awk '{print $2}')
    
    	if [ "$code" = "UTF-8" -o "$code" = "ISO-8859" ];
    	then
    
    		if [ "$code" = "UTF-8" ];
    		then
    		text=$(cat $DAT | tr -s xX~#_.:- | head -c 1500 | iconv -s -f UTF-8 -t ISO-8859-15 2>/dev/null)
    		fi
    
          # ausführende Datei schreiben:
    
    	echo "#!/bin/sh"		    > $datei
    
    	echo "cat <<!" 			   >> $datei
    
    	echo "("$code")"$i":"	       >> $datei
    	echo $text 			      >> $datei
    	echo "~~~~~~~~~~~~~~~~~~~~~~~"	>> $datei
    
    	echo "!" 			            >> $datei
    	echo "echo -n '   '" 		       >> $datei
    	echo "read WAHL" 		>> $datei
    	echo "case \"\$WAHL\" in"    >> $datei
    	
    	echo "1)"	 		           >> $datei
    	echo "           leafpad $DAT" 	>> $datei
    	echo "           ;;" 		             >> $datei
    
    	echo "*)"	 		             >> $datei
    	
    	
    	echo "esac"			        >> $datei
    	
    	#ausfuehren:
    	$datei
    
    	fi
    done
    exit 0
    Frage nun:
    1. geht´s auch eleganter ?
    2. gibt´s evtl sowas schon in einer korrekt & schnell arbeitenden Variante ?
    3. woraus erklärt sich, daß einzellne Dateien nicht korrekt dargestellt werden ?
    viele Grüße,
    Tom
    PS
    EMACS soll sowas können...
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Datei-Reader