Bash Suchen innerhalb einer Zeile

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
xcomm
Beiträge: 804
Registriert: 21.09.2003 05:12:01
Wohnort: Europe
Kontaktdaten:

Bash Suchen innerhalb einer Zeile

Beitrag von xcomm » 08.09.2007 14:33:23

Hi Gemeinde,

gibt es eine ähnliche Möglichkeit !!! innerhalb !!! einer langeren Befehlszeile zu suchen/springen?

Code: Alles auswählen

STRG+S   - suchen in der History
STRG+R   - reverse suchen in der History

STRG+A   - gehe zum Anfang der Zeile
STRG+E   - gehe zum Ende der Zeile
Danke, xcomm

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von cirrussc » 08.09.2007 23:54:39

Hi,

also zum Anfang und Ende springen gibt es schon, Taste "Pos1" und "Ende" auf der Tastatur. Funktioniert immer.
Die Befehlshistory der Bash kannst mit Pfeil- hoch und runter- Tasten durchforsten.

Gruß cirrussc
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

Benutzeravatar
markus_b
Beiträge: 355
Registriert: 26.01.2006 04:57:18
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von markus_b » 09.09.2007 00:49:30

Suchst du so etwas?

Aus man bash:

Code: Alles auswählen

       forward-word (M-f)
              Move forward to the end of the next word.  Words are composed of alphanu‐
              meric characters (letters and digits).
       backward-word (M-b)
              Move  back  to the start of the current or previous word.  Words are com‐
              posed of alphanumeric characters (letters and digits).

Benutzeravatar
xcomm
Beiträge: 804
Registriert: 21.09.2003 05:12:01
Wohnort: Europe
Kontaktdaten:

Beitrag von xcomm » 09.09.2007 19:49:50

Hi cirrussc, hi markus_b,

danke für Eure Antworten.
Alt+f und Alt+b
geht schon in die richtige Richtung aber auch damit ist es noch umständlich innerhalb einer Zeile.



Hier nur eine kurze Zeile als Bespiel - sagen wir, ich möchte direct zu CET springen?

Code: Alles auswählen

elif [ "`date | cut -d' ' -f6`" = "CEST" -o "`date | cut -d' ' -f5`" = "CET" -o "`date | cut -d' ' -f5`" = "UTC" ]; then
Vielen Dank, xcomm

Benutzeravatar
markus_b
Beiträge: 355
Registriert: 26.01.2006 04:57:18
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von markus_b » 09.09.2007 20:27:15

Dann würde sich so etwas anbieten:
man bash hat geschrieben: edit-and-execute-command (C-xC-e)
Invoke an editor on the current command line, and execute the result as
shell commands. Bash attempts to invoke $FCEDIT, $EDITOR, and emacs as
the editor, in that order.
Damit kann du deine Zeile in deinem Lieblingseditor bearbeiten.


Falls du ein komplizierteres Kommando hast, wo ein Verdacht besteht, dass du es später noch einmal brauchen kannst, würde ich dir sowieso empfehlen, daraus ein kleines Skript zu basteln. Das kannst du dann auch in deinem Lieblings-Texteditor machen. Und das Skript kannst du dann auch bei Bedarf anpassen und erweitern.

Benutzeravatar
xcomm
Beiträge: 804
Registriert: 21.09.2003 05:12:01
Wohnort: Europe
Kontaktdaten:

Beitrag von xcomm » 10.09.2007 16:44:52

Hi markus_b,

super - danke!

Code: Alles auswählen

Strg+x Strg+e
ist richtig cool. ;-)

Regards, xcomm

Benutzeravatar
xcomm
Beiträge: 804
Registriert: 21.09.2003 05:12:01
Wohnort: Europe
Kontaktdaten:

Beitrag von xcomm » 10.09.2007 16:48:51

Hi All,

jetzt habe ich noch was gefunden:

Code: Alles auswählen

Alt-] x  	 Where x is any character, moves the cursor forward to the next occurance of x.
Alt-Ctrl-] x 	Where x is any character, moves the cursor backwards to the previous occurance of x.
Danke, xcomm

Antworten