Code: Alles auswählen
~ >> which l
l: aliased to ls
Code: Alles auswählen
~ >> which l
l: aliased to ls
Code: Alles auswählen
alias l='zufall=$(( RANDOM % 800))
if test ${zufall} -lt 10 ; then
sl
elif test ${zufall} -lt 20 ; then
sl -a
elif test ${zufall} -lt 30 ; then
sl -l
elif test ${zufall} -lt 40 ; then
sl -f
elif test ${zufall} -lt 50 ; then
sl -lf
elif test ${zufall} -lt 60 ; then
sl -af
elif test ${zufall} -lt 70 ; then
sl -al
elif test ${zufall} -lt 80 ; then
sl -alf
else
ls
fi'
Code: Alles auswählen
alias l='l -CF'
Code: Alles auswählen
alias l='ls -larth'
Code: Alles auswählen
alias l='ls -aCF'
alias la='ls -la'
alias ll='ls -oga'
alias ls='ls --color=auto'
Code: Alles auswählen
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
alias lsd='ls -l |grep ^d'
alias lsr='ls -lSr'
alias lst='ls -R | grep ":$" | sed -e '\''s/:$//'\'' -e '\''s/[^-][^\/]*\//--/g'\'' -e '\''s/^/ /'\'' -e '\''s/-/|/'\'''
alias ltr='ls -ltr'
Code: Alles auswählen
:-Q alias l='for i in `echo $PATH|tr : " "`;do \ls -d1 $i/l?;done 2>/dev/null;alias|sed -n "s/^\(l.\)=.*/\1/p"'
:-Q l
/home/meillo/bin/l0
/home/meillo/bin/l5
/home/meillo/bin/lo
/usr/bin/ld
/usr/bin/lp
/usr/bin/lz
/bin/ln
/bin/ls
la
lh
ll
ls
Code: Alles auswählen
:-Q alias | grep ^l.=
la='ls -AF'
lh='ls -lhF --time-style=long-iso'
ll='ls -lF --time-style=long-iso'
ls='ls -F'
Code: Alles auswählen
#!/bin/sh
num="`echo "$0" | sed 's,.*/,,; s,^[^0-9]*,,'`"
if [ x$num = x0 ] ; then
num="`stty size`"
num="${num% *}"
num="`expr $num - 3`"
fi
exec scan "l:$num" "$@"
smutbert hat mich dazu inspiriert:smutbert hat geschrieben:12.12.2020 13:03:37Wieso nicht die Eisenbahn wenigstens im Schnitt jedes zehnte Mal fahren lassen und das in allem möglichen VariantenCode: Alles auswählen
alias l='zufall=$(( RANDOM % 800)) if test ${zufall} -lt 10 ; then sl elif test ${zufall} -lt 20 ; then sl -a elif test ${zufall} -lt 30 ; then sl -l elif test ${zufall} -lt 40 ; then sl -f elif test ${zufall} -lt 50 ; then sl -lf elif test ${zufall} -lt 60 ; then sl -af elif test ${zufall} -lt 70 ; then sl -al elif test ${zufall} -lt 80 ; then sl -alf else ls fi'
Code: Alles auswählen
alias l='`yes ls|sed "1s,.*,sl,;10q"|sort -R|sed q` -`man ls|col -b|sed -n "s/^ *-\([A-Za-z0-9]\).*/\1/p"|sort -R|sed \`expr $RANDOM % 4 + 1\`q|tr -d "\n"`'
(Das mit dem `sed q' habe ich beim Buchstaben `h' erklaert.)smutbert hat geschrieben:13.12.2020 10:52:26Das ist cool, wobei ich den ersten Teil noch nicht ganz durchschaut habe. Ich sehe, dass das mit yes und den ersten beiden seds funktioniert, aber ich weiß noch nicht wieso.
Der zweite Teil mit dem Extrahieren der ls-Optionen aus der manpage ist sowieso genial.
edit:
Ok, das mit sort und dem zweiten sed habe ich doch noch kapiert, aber wieso das erste sed das macht, was es macht, ist mir immer noch nicht ganz klar.
Code: Alles auswählen
yes ls | sed "1s,.*,sl,; 10q"
LOL!tobo hat geschrieben:13.12.2020 13:56:04Da braucht es klaren, lesbaren Code. Sowas z.B.: sed '\sgssgsg\ggg'
genau das war es. (Ich war komplett auf ls fixiert.)tobo hat geschrieben:13.12.2020 13:56:04[...] und die Ähnlichkeit von 1 und l ist möglicherweise auch nicht hilfreich!? [...]
So, dag igt gemein, bei Meillog Code wuggte ich weniggteng, wag er macht, wenn auch nicht auf Anhieb warum, aber hier gtehe ich komplett daneben.tobo hat geschrieben:13.12.2020 13:56:04Da braucht es klaren, lesbaren Code. Sowas z.B.: sed '\sgssgsg\ggg'
Wenn ihr, wie ich, w3m in einem Terminal mit der Schrift Terminus verwenden wuerdet, dann haettet ihr keine Probleme `1' und `l' zu unterscheiden.smutbert hat geschrieben:13.12.2020 14:22:26genau das war es. (Ich war komplett auf ls fixiert.)tobo hat geschrieben:13.12.2020 13:56:04[...] und die Ähnlichkeit von 1 und l ist möglicherweise auch nicht hilfreich!? [...]
Ich frage mich gerade ob ich mich bei "sed "1s,ls,sl,;10q"" noch blöder angestellt hätte oder es schneller verstanden hätte.
Code: Alles auswählen
sed '1,1s,.*.,sl,1'
Wie ich sehe hast du die Wirkweise ja inzwischen herausgefunden.smutbert hat geschrieben:13.12.2020 14:22:26So, dag igt gemein, bei Meillog Code wuggte ich weniggteng, wag er macht, wenn auch nicht auf Anhieb warum, aber hier gtehe ich komplett daneben.tobo hat geschrieben:13.12.2020 13:56:04Da braucht es klaren, lesbaren Code. Sowas z.B.: sed '\sgssgsg\ggg'
Code: Alles auswählen
sed '\sgssgsg\ggg'
## ist identisch zu
sed '/g/ s/s/g/g'
Alles korrekt und gut erklaert.smutbert hat geschrieben:13.12.2020 20:59:09Herausgefunden habe ich es durch Ausprobieren aber vielen Dank, dass ihr mir so auf die Sprünge helft. Darf ich noch einmal zusammenfassen, soweit ich es verstanden habe:
'/g/' ist das was du als Adresse bezeichnet hast und filtert einfach zeilenweise auf das Vorkommen von g?
Bei '\sgs' wählst du mit \s das s statt / als Trennzeichen (oder wie immer man das an der Stelle nennt).
Der Rest 's/s/g/g' ist eine einfache Ersetzung von s durch g mit dem g für global (alle Vorkommen in der Zeile zu behandeln)?
'sgsg\ggg' ist dasselbe mit g als Trennzeichen und deswegen muss das g durch das das Muster ersetzt wird, also das drittletzte g escaped werden.
Das ist so alles richtig. Die Substitution wird nur auf die Zeilen angewendet, die vorher durch die RegEx gefunden werden.smutbert hat geschrieben:13.12.2020 20:59:09Darf ich noch einmal zusammenfassen, soweit ich es verstanden habe:
Es gibt verschiedene Adressen:'/g/' ist das was du als Adresse bezeichnet hast