ubuntuusers.de

Dokumenten Name automatisch in die 1 Zeile einer txt Datei schreiben lassen

Status: Gelöst | Ubuntu-Version: Xubuntu 17.04 (Zesty Zapus)
Antworten |

lissper

Anmeldungsdatum:
9. November 2011

Beiträge: 34

Hallo All

Mangels Exportfunkton in Appel-Notizen habe ich mir einen Einzeiler zusammengestellt. Mit dem kann ich via Terminal und Copy/Paste meine i-Notizen aus dem Browser auskopieren und als Dokument in meinem Home Verzeichnis ablegen.

Der Einzeiler legt mit eine neue Datei an, mit einer Zufallszahl im Dateinamen, die Nummer dient mir als ID. Sendet dann den generirte ID in die Zwischenablage, so das ich mit Past den ID-Namen in die Text Datei einfügen kann.

1
cat >>$RANDOM.txt && ls -t | head -n 1 | xsel -b

Frage: Damit der erzeuge Dokumentenname gleich mit in die TXT Datei geschrieben wird, suche ich einen Zusatzbefehl. Kennt jemand eine elegant Lösung?

Besten Dank im Voraus

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11260

Wohnort: München

Merkt dir doch einfach deine ID (die würde ich aber lieber mit uuidgen erzeugen, denn die Ergebnisse von $RANDOM wiederholen sich öfter als einem Lieb ist) bzw. den Dateinamen als Variable:

1
filename="$(uuidgen).txt"; echo "$filename" >> "$filename"

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

lissper schrieb:

1
cat >>$RANDOM.txt && ls -t | head -n 1 | xsel -b

Was soll dieser Code machen ?? - verrate uns doch bitte lieber, was Du genau vorhast, statt uns mit "vermutlich funktionierendem Code" ( zum selber raten ... 😬 ) zu bombadieren. Also:

  • was ist vorgegeben ?

  • wo soll diese Zeile stehen ?

  • was soll xsel machen ?

Um einen Zufallsnamen zu erzeugen, würde ich ja lieber tempfile nehmen: Deine Methode mit der Zufallszahl erzeugt regelmäßig immer mal Kollisionen, bei tempfile ist das ausgeschlossen.
Praktischerweise ziehst Du den Dateinamen gleich in eine Variable.

Den Rest kannst Du mit Shell-Mitteln machen, mit awk , nach Belieben jeder anderen Hochsprache, oder sogar mit grep :

track@track:~$ datei=$(tempfile)
track@track:~$ echo "Ich heiße $datei" > $datei
track@track:~$ cat $datei
Ich heiße /tmp/filesECVvv
track@track:~$ grep -H . $datei
/tmp/filesECVvv:Ich heiße /tmp/filesECVvv 

LG,

track

lissper

(Themenstarter)

Anmeldungsdatum:
9. November 2011

Beiträge: 34

 Mit diesem Befehl arbeite ich zur Zeit in der Shell: Mit cat Erzeugt ich eine neue TXT Datei (mit Zufallsname) und es öffne gleich in der Shell den Cat-Editer, wo ich mit Copie/Past meinen Text einfügen kann. Mit Enter und Ctrl+D schlisse ich ab und habe die Datei auf meiner HD erstellt. Soweit so gut.

Das Programm xsel, nimmt mein erzeugter Datei in die Zweischenablage auf, so dass ich mit Past den Datei-Name in das Dokument schreiben kann. Ich denke mir, dass das in einem Schritt zu machen ist.

:

liss@per:~$ cat >>$RANDOM.txt && ls -t | head -n 1 | xsel -b 

Die Ausgabe dieses Schnipseln :

ls -t | head -n 1 

will ich automatisch in das eben erzeugte TXT-Dokument einfügen lassen. (wenn es machbar ist die Testausgabe an erster Stelle, kann aber auch einfach angefügt werden.)

Danke

lissper

(Themenstarter)

Anmeldungsdatum:
9. November 2011

Beiträge: 34

Hallo Track!

Supert, Danke für den Tipp mit den Tempfile. Ich habe etwas herumgeprobt und es klappt, wie ich mit das vorstelle.

Mein neuer Einzeiler sieht wie folgt aus:

liss@per:~$ datei=$(tempfile) && echo "$datei" > $datei && grep -H . $datei && cat >>$datei 

So habe ich ein Bennante Textdatei und habe kann durch cat >>$datei mit meinem Text füllen.

Frage: wie kriege ich die Datei nun aus dem Temp-Ordner in ~/Ordner geschriene?

Besten Dank Linus

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

lissper schrieb:

Frage: wie kriege ich die Datei nun aus dem Temp-Ordner in ~/Ordner geschriene?

Kleiner Tip: die man-page lesen wirkt Wunder ... 😉
(beachte die Option "-d" → allerdings musst Du außerhalb von /tmp die Datei hinterher selber wieder entsorgen !)

LG,

track

lissper

(Themenstarter)

Anmeldungsdatum:
9. November 2011

Beiträge: 34

Hi Track

Ja Danke, leider verstehe ich die Theorie oft erst nachdem ich über praktische Beispiel stürze!! 😀 😀 tja...

Meine Lösung sieht so aus

liss@per:~$ datei=$(tempfile) && echo "$datei" > $datei && grep -H . $datei && cat >>$datei && sudo cp $datei ~/$datei.txt 

Das geht! Ich habe dann eine Text Datei (leider) mit root Rechen in meinem lokalen tmp Ordner. Ich will diese Textdateien als Import von meinen iCloud Notizen nutzen. Appel stellt keine Export-Funktion zu Verführung.

Wirklich elegant ist meine Lösung nicht, muss mich noch näher mit dieser 'tempfile' Option "-d" Auseinandersetzen. Meine ersten Versuche sind gescheitert...

Danke!

LG Linus

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Was willst Du eigentlich genau machen ?

Im Moment sehe ich nur Deine etwas "wilden" Versuche eine Datei anzulegen und irgendwie was aus der Zwischenablage da rein zu kopieren ...
Und nachher soll es irgendwie auch wieder zurück in die Zwischenablage. - -
(Mit der Nebenwirkung, dass sich in Deinem Home-Verzeichnis im Laufe der Zeit massenweise Dateileichen ansammeln)

Aber was willst Du tatsächlich erreichen ? (denn womöglich braucht man die Datei ja gar nicht ... ?)

track

lissper

(Themenstarter)

Anmeldungsdatum:
9. November 2011

Beiträge: 34

Ich habe den Browser geöffnet und habe mich in die iCloud eingeloogt. Nun will ich meine Notizen, die ich im iPot angelegt habe auf mein Ubuntu in einen Ordner runter holen. Notiz für Notiz, via Copy und in der Shell mit Past. Das einfach mit meinen letzter Einzeiler aus der History: Enter klicken, Text mit Past ins Terminal laden, mit Enter und Ctrl+D einfügen. Fertig ist das Dokument! Der iCloud Notiz verpasse ich dann den selben Titel, das muss ich manuel machen.

Bash soll dem Textdokument eine Eindeutigen Filename quasi als ID und das gleich in das Dokument einschreiben. So habe ich Text später auf beiden Systemen wiederfinden.

Wahrscheinlich könnte ich mich mit wget bei iCloud anmelden und meine Notizen in einem Rutsch herunterladen.

Die Notizen brauche ich auf meinem Linux-System damit ich mit Scribus weiterarbeiten kann.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11260

Wohnort: München

Man könnte sich den Text auch mit xsel aus der Zwischenablage holen statt cat als Editor zu missbrauchen. Den Sinn für eine temporäre Datei sehe ich nicht wirklich, wenn die Datei dann eh in einem Ordner im HOME-Verzeichnis landen soll:

filename="$HOME/Ordner/$(uuidgen).txt"; echo "$filename" > "$filename"; xsel -bo >> "$filename"; echo "$filename" | xsel -bi 

lissper

(Themenstarter)

Anmeldungsdatum:
9. November 2011

Beiträge: 34

Pahhh! Ich bin sprachlos!!!

Das übertrifft meine kühnsten Erwartungen, das ist es!!!

Danke @seahawk1986!

Nun brauche ich bloss noch ein Skript, das sich anstelle von mir an den Computer setzt!!

😀 😀 😀

Antworten |