Also so, das wen ich ein neues Dokument mit
Code: Alles auswählen
:w DOKUMENTENNAME
Code: Alles auswählen
:w DOKUMENTENNAME
Code: Alles auswählen
function! Txt(filename) range
execute "save " . a:filename . ".txt"
endfunction
command! -nargs=1 WT call Txt( <q-args> )
Code: Alles auswählen
:WT DATEINAME
Code: Alles auswählen
function! Txt(filename) range
execute "save " . a:filename . ".txt"
endfunction
command! -nargs=1 WT call Txt( <q-args> )
cabbrev w WT
Nur aus Interesse (und aus Spa#): Was bedeutet mL? Ist das ein dem Netzjargon entstammendes, mir unbekanntes Akronym? "Mit Liebe"? Oder doch ein Tippfehler? Wer sich massenhaft vertippt, hat ja überhaupt auch schlechte Chancen in der Shell ...
Hey maroc danke für deine Antwort. =)maroc hat geschrieben:14.08.2017 22:39:40Du könntest eine passende Funktion mit zugehörigem Befehl definieren. Ich habe das mal eben getestet, indem ich den Abschnittin meine ~/.vimrc eingefügt habe.Code: Alles auswählen
function! Txt(filename) range execute "save " . a:filename . ".txt" endfunction command! -nargs=1 WT call Txt( <q-args> )
Beim Speichern mitwird automatisch die Endung .txt an DATEINAME angehängt.Code: Alles auswählen
:WT DATEINAME
EDIT: Wenn Du wirklich willst, kannst Du zusätzlich auch den eingebauten vim-Befehl w entsprechend umwidmen:Code: Alles auswählen
function! Txt(filename) range execute "save " . a:filename . ".txt" endfunction command! -nargs=1 WT call Txt( <q-args> ) cabbrev w WT
Hi uname =)uname hat geschrieben:15.08.2017 08:46:55Ich ändere immr so wenig wie möglich. Auch verwende ich z.B. keine Aliases. Das Problem ist man gewöhnt sich schnell daran und wenn man mal vor einer Standardinstallation sitzt funktioniert nichts mehr. Wahrscheinlich würde ich, wenn ich z.B. Hunderte Textdateien erstellen müsste, alle in einen Ordner ohne .txt anlegen und dann massenweise umbenennen. Gibt bestimmt jemanden der gerne einen entsprechenden Befehl postet, der in einem Ordner txt/ alle Dateien ohne .txt in Dateien mit .txt umbenennt.
Code: Alles auswählen
mv Verzeichnis/* Verzeichnis/*.txt
Code: Alles auswählen
$ cd <DIR>
$ rename -n 's/$/.txt/' *
Oh danke das klappt schon ganz wunderbar ;D.tobo hat geschrieben:18.08.2017 00:56:56In einfachster Form dann wohl sowas:Hängt (simulierend -n) ein .txt an jeden Dateinamen in <DIR> an.Code: Alles auswählen
$ cd <DIR> $ rename -n 's/$/.txt/' *
Code: Alles auswählen
$ cd <DIR>
$ find . -maxdepth 1 -type f -exec rename -n 's/$/.txt/' {} +
Danke =)tobo hat geschrieben:18.08.2017 02:13:45type anstelle filetype:Ohne maxdepth springt er dann auch in eventuell vorhandene Unterverzeichnisse hinein.Code: Alles auswählen
$ cd <DIR> $ find . -maxdepth 1 -type f -exec rename -n 's/$/.txt/' {} +
Code: Alles auswählen
-type -f
Richtig - so war das ja auch ursprünglich angedacht!? Das geht ja jetzt alles vom 1/100 ins 1/1000.Quirrlila hat geschrieben: So würde dann ja auf Bspw. ~ angewendet auch jedem anderen Dateityp .txt angehängt...
Code: Alles auswählen
$ find . -type f -name '*.mp4'
Code: Alles auswählen
$ find . -type f -exec rename -n 's/\.mp4$/.txt/' {} +
Der Datei-Benennung nach?tobo hat geschrieben:18.08.2017 03:19:48Du kannst im find den filetype angeben (zumindest der Datei-Benennung nach) [...]
Code: Alles auswählen
$ find . -type f -exec rename -n 's/\.mp4$/.txt/' {} +
Einzeiler, der bei jedem Ergebnis von find dann file aufruft – hässlich wird’s dann nur bei dem Ressourcenverbrauch, für jede Datei muss logischerweise eine Instanz von file gestartet, und die Datei zum Lesen geöffnet werden. Würd’s daher nur auf suffixlose Files anwenden (von denen im gegebenen Verzeichnis dann hoffentlich nicht zu viele da sind).Aber auch wenn mal vergessen wird bei der Umbennung einer Datei .DATEIYP wieder anzuhängen wäre ein Ergebnis einer fileytp-Suche die auch Dateien ohne .DATEITYP im Namen findet praktisch.
Ja, mehr kann find nicht.
Gibt's da irgendeinen logischen Grund für? In dem Moment, wo du genau weißt, was es ist, da willst du es nicht hinschreiben, sondern später einen Algorithmus drüber laufen lassen, der das rausfinden soll?!Falls ja, das ist ja nicht bei allen Dateien der Fall, z.B. wenn ich eine Dokument mit vim abspeichere, dann steht da halt nur der Name ohne .DATEITYP am Ende, es sei denn ich speichere das so ab (was ich ja möglichst vermieden möchte).
Das ist ein anderer und auch legitimer Fall. Da muss man aber erstmal definieren, was ein Dateiname ohne Dateiendung ist. Da ich Dateiendungen selbst bestimmen kann und nicht nur auf gültige, bereits bestehende Dateiendung beschränkt bin, ist das also nur ein Dateiname ohne "." mittendrin. Wenn das der Anspruch ist - diese Dateien kann find finden:Aber auch wenn mal vergessen wird bei der Umbennung einer Datei .DATEIYP wieder anzuhängen wäre ein Ergebnis einer fileytp-Suche die auch Dateien ohne .DATEITYP im Namen findet praktisch.
Code: Alles auswählen
$ find . -type f -regex '.*/\.*[^.]+$'
Ob das 100%ig verlässlich ist, weiß ich nicht; jedenfalls sollte es hinreichend sicher für dich sein.Linux kann doch den Dateityp von Dateien erkennen, ohne dass dieser im Namen angegeben ist; also wenn ich file anwende Bswp. dann weiß file ja um was es sich für einen Dateityp handelt.
Die Aussage von file ist ja auch zu 100% verlässlich, im Gegensatz zu einem Dateinamen mit .DATEITYP am Ende, welcher ja auch falsch sein kann...
Quirrlila hat geschrieben:18.08.2017 21:45:28Falls ja, das ist ja nicht bei allen Dateien der Fall, z.B. wenn ich eine Dokument mit vim abspeichere, dann steht da halt nur der Name ohne .DATEITYP am Ende, es sei denn ich speichere das so ab (was ich ja möglichst vermieden möchte).
Das war ja die ursprüngliche Intention dieses Threads.tobo hat geschrieben:19.08.2017 02:33:08Gibt's da irgendeinen logischen Grund für? In dem Moment, wo du genau weißt, was es ist, da willst du es nicht hinschreiben, sondern später einen Algorithmus drüber laufen lassen, der das rausfinden soll?!
Ich habe einfach keine Lust nach jedem Dateinamen .txt zu tippenQuirrlila hat geschrieben:14.08.2017 20:05:09Gibt es da eine Möglichkeit?
Also so, das wen ich ein neues Dokument mitspeichere, automatisch .txt an DOKUMENTENNAME gehängt wird?Code: Alles auswählen
:w DOKUMENTENNAME
verhält sich ja nicht so.guennid hat geschrieben:15.08.2017 10:04:05Frage ob der Sinnhaftigkeit des Unternehmens:
Gibt es bei der "Text"produktion Szenarien, in denen es einen spürbaren Gewinn bedeutet, vier Tastenanschläge weniger zu tippen?
Ja das ist praktisch, aber nun findet find ja auch die, welche mich nicht interessieren, wie Bspw. irgendwelche config-Dateien.tobo hat geschrieben:19.08.2017 02:33:08[...] ein Dateiname ohne "." mittendrin. [...] kann find finden:Code: Alles auswählen
$ find . -type f -regex '.*/\.*[^.]+$'
Stimmt das ist wirklich Mist, da würde dann in einem script evtl. eine Art Blacklist helfen, wo diese config-Dateien eingetragen werden.tobo hat geschrieben:19.08.2017 02:33:08[...] Dateien wie z.B. ~/.profile, ~/.xsession oder ~/.bashrc sind Textdateien ohne Dateiendung. Ein Umbenennen macht die schlicht unbrauchbar.
Deshalb sah ich dann davon ab und hoffte auf eine andere nachträgliche Lösung.scientific hat geschrieben:15.08.2017 07:38:29:w umzudefinieren halte ich für nicht klug. Das benennt dann ja auch Shellscripts um. Oder?
Viel Spaß, wenn du mal am System schraubst...
Ich hätte das direkt gefragt wenn ich direkt darauf gekommen wäremaroc hat geschrieben:14.08.2017 22:39:40Du könntest eine passende Funktion mit zugehörigem Befehl definieren. Ich habe das mal eben getestet, indem ich den Abschnittin meine ~/.vimrc eingefügt habe.Code: Alles auswählen
function! Txt(filename) range execute "save " . a:filename . ".txt" endfunction command! -nargs=1 WT call Txt( <q-args> )
Beim Speichern mitwird automatisch die Endung .txt an DATEINAME angehängt.Code: Alles auswählen
:WT DATEINAME
EDIT: Wenn Du wirklich willst, kannst Du zusätzlich auch den eingebauten vim-Befehl w entsprechend umwidmen:Code: Alles auswählen
function! Txt(filename) range execute "save " . a:filename . ".txt" endfunction command! -nargs=1 WT call Txt( <q-args> ) cabbrev w WT
Code: Alles auswählen
:WT DATEINAME
Code: Alles auswählen
function! Txt(filename) range
execute "save " . a:filename . ".txt"
endfunction
command! -nargs=1 WT call Txt( <q-args> )
Code: Alles auswählen
vim.tiny testdatei
Error detected while processing /home/USER/.vimrc:
line 1:
E319: Sorry, the command is not available in this version: function! Txt(filename) range
line 2:
E319: Sorry, the command is not available in this version: execute "save " . a:filename . ".txt"
line 3:
E319: Sorry, the command is not available in this version: endfunction
line 4:
E319: Sorry, the command is not available in this version: command! -nargs=1 WT call Txt( <q-args> )
Press ENTER or type command to continue
Code: Alles auswählen
:WT
Code: Alles auswählen
E492: Not an editor command: WT