Multible MV und datei finden

Diskutiere Multible MV und datei finden im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; und schon wieder ich zwei dinge fehlen mir noch. a) eine mv für verschieden datein mv *.txt qsp/mischer/*.tank.... das tut es nicht !...

  1. muemmi

    muemmi Eroberer

    Dabei seit:
    14.12.2005
    Beiträge:
    65
    Zustimmungen:
    0
    und schon wieder ich

    zwei dinge fehlen mir noch.

    a) eine mv für verschieden datein

    mv *.txt qsp/mischer/*.tank.... das tut es nicht !

    ich möchte alle txt woanderhin nach *.tank renamen

    b) ich hab da eine ansammlung von dateien

    z.b tank123.tank und tank124.tank usw.

    wie kralle ich mir eine davon ohne den namen zu wissen (ausßer die endung)
    und rename sie zu einem bekannten namen

    damit ich sie dann mit einem program bearbeiten kann !
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Xanti, 20.12.2005
    Zuletzt bearbeitet: 20.12.2005
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    a:

    Wenn ".txt" nur am Ende des Filenamen vorkommt:

    Code:
    for i in $(find . -iname "*.txt"); do mv $i qsp/mischer/${i/.txt/.tank}; done
    
    edit: Allgemeingültig:

    Code:
    find . -iname "*.txt" | perl -ple '$file=$_; s/\.txt$/.tank/i; rename $file, "qsp/mischer/$_"'
    
     
  4. #3 ninguno, 20.12.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    zu a)
    Code:
    for i in *.txt; do mv "$i" qsp/mischer/$(basename "$i" .txt).tank; done
    zu b) weiss nicht was du meinst
     
  5. muemmi

    muemmi Eroberer

    Dabei seit:
    14.12.2005
    Beiträge:
    65
    Zustimmungen:
    0
    hmmmm

    wir erkäre ich jetzt besser b)

    also ich bekomme daten von einem messgerät (oder besser eine Waage) geliefert. die stehen in einer datei diese dateien haben verschieden namen
    und immer die selbe endung

    jetzt muß ich sie einzel anpacken und sie umbenenne in einen bekannten namen
    dann wird die datei von einem programm abgerabeitet
    dann wird sie verworfen und die nächset ist dran

    erklärung

    ich migriere von vms auf unix...
    ich weiß zwar was ich will aber ich kenn die feinheiten nicht
    dummerweise ist es eine shelloberfläche auf windows die nicht so doll viele befehle kennt!
     
  6. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    zu b) Wenn Dein Programm den Dateinamen als Kommandozeilenparameter akzeptiert, kannst Du es so gestalten:
    Code:
    for i in *.tank ; do /pfad/zu/Deinem/programm $i ; done
    
    Vor dem 'done' kannst Du noch ein 'rm $i; ' einfuegen, falls die abgearbeitete Datei geloescht werden soll.
     
  7. #6 Wolfgang, 20.12.2005
    Zuletzt bearbeitet: 20.12.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    • 1. Ist das hier ein Unixboard, und somit eigentlich nicht für WindoZe limitierte Dosboxen zuständig
    • 2. Kennt IMHO sogar die Dos pseudo Shell dafür Befehle.
    • 3. Lässt sich sowas in jedem Fall auch mit perl erledigen. Das gibt es auch für Wintendo. Somit bleiben diese Codesnippel portierbar genug.

    Wie du dein Problem anzufassen hast steht ja schon oben.
    Außerdem gibt es dafür etliche manpages auch im Netz, die solch File bezogene Befehle beschreiben.

    Um einen Dateinamen vor der (sogenannten) erweiterung zu expandieren gibt es viele Möglichkeiten.
    Einige davon findest du hier im Board.
    Mit perl z.B. so
    ....
    $name=~s!.*\.([^.])+$!neu.$1!ig
    ....
    Das in eine Schleife gepackt, und über deinen Prozess für ausgewählte Dateien einfügen.

    Andere Varianten stehen oben im Thread.
    Willst du die z.b alle in einem Arbeitsverzeichnis haben:
    Code:
    for I in $(find /home -iname "*txt"); do perl -MFile::Copy -le ' copy $1, "/temp/neu$3" if $ARGV[0]=~m/((.*\/).*(\.[^.]+))$/ig' $I;
    here commands in /temp;
    ...
    done
    
    
    Im og Fall hält die
    $1=gesamte Datei mit Pfad
    $2= UrsprungsPfad ohne Datei
    $3= Dateiendung nach dem letzten Punkt -> hier wohl txt|Txt|TxT...siehe ->>Option i im Regexp.

    Du kannst auch gleich File::Find einsetzen,dann sparst du dir die for und find Geschichte. Oder statt copy rename usw. einsetzen.
    Das sind Sachen der eigenen programmiertechnischen Creativität ;)

    Oder eben oben genannte Alternativen mit reinen Shellmitteln
    via Parameterexpansion

    Edit:
    Zu deinem besagten anonymen Programm:
    Wie dieses die Dateienamen erwartet, kann ausser dir niemand wissen.
    Also entweder den Inhalt übergeben oder den Namen.

    Gruß Wolfgang

    PS Eben mal gegoogelt:
    Der xcopy-befehl unter deiner pseudo Shell cmd.exe kann das auch!
    Dazu sollte ja wenigstens unter dem WintenDosystem eine Hilfe existieren.
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Multible MV und datei finden

Die Seite wird geladen...

Multible MV und datei finden - Ähnliche Themen

  1. Fragen zu stty, quotes und Datein (flush)

    Fragen zu stty, quotes und Datein (flush): Hi, ich schreibe seit ein paar Tagen ein Skript, dass über die Serielle Schnittstelle kommuniziert. Leider gibt es noch zwei Probleme, die ich...
  2. NFS durch Symlink auf lokales Dateisystem entlasten

    NFS durch Symlink auf lokales Dateisystem entlasten: Hallo zusammen, ich bin neu hier und auch nicht sicher ob ich mich hier im richtigen Forum befinde... Darum schon mal sorry wenn es eigentlich...
  3. Linux "vergisst" Dateisystem?

    Linux "vergisst" Dateisystem?: Hallo zusammen! Aufgrund des von mir hier beschriebenen Problems habe ich nun die halbe Nacht "durchgearbeitet", da ein komplett neues Konzept...
  4. 2 Spalten in EINER Textdatei GETRENNT addieren

    2 Spalten in EINER Textdatei GETRENNT addieren: Hey, bin ein ziemlicher Neuling in Sachen programmieren. Nun steh ich vor dem Problem, dass ich 2 Zahlenspalten inner Textdatei (vim) getrennt...
  5. User sollen Dateien speichern und ändern, aber nicht neu anlegen dürfen

    User sollen Dateien speichern und ändern, aber nicht neu anlegen dürfen: Hallo liebe Helfer, welche Einstellungen muss ich in der smb.conf bzw. unter Linux vornehmen, damit User vorhandene Dateien öffnen und speichern...