X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=zsh-lovers.1.txt;h=01959afdbff83ba2bd83aca339f11e47564a3a38;hb=5436a261ed42469ef48378bf9591f7e8fe9d4186;hp=7394eee9afbcce5fa43e7219abb8ad86ab8291e3;hpb=45131d247c34e18cc4ca4f7387a247c6c0c6cc77;p=zsh-lovers.git diff --git a/zsh-lovers.1.txt b/zsh-lovers.1.txt index 7394eee..01959af 100644 --- a/zsh-lovers.1.txt +++ b/zsh-lovers.1.txt @@ -210,6 +210,27 @@ Hint: A list of valid glob Qualifiers can be found in zshexpn(1). See ``man 1 zshexpn | less -p'' Qualifiers for details. ------------------------------------------------------------------------------- +# Get the names of all files that *don't* match a pattern *anywhere* on the +# file (and without ``-L'' because its GNUish) + $ print -rl -- *(.^e{'grep -q pattern $REPLY'}) + # or + $ : *(.e{'grep -q pattern $REPLY || print -r -- $REPLY'}) + +# random numbers + $ echo $[${RANDOM}%1000] # random between 0-999 + $ echo $[${RANDOM}%11+10] # random between 10-20 + $ echo ${(l:3::0:)${RANDOM}} # N digits long (3 digits) + +# reverse a word + $ echo "${(j::)${(@Oa)${(s::):-hello}}}" + +# Show newest directory + $ ls -ld *(/om[1]) + +# random array element + $ FILES=( .../files/* ) + $ feh $FILES[$RANDOM%$#FILES+1] + # cat first line in all files in this dir $ for file (*(ND-.)) IFS= read -re < $file @@ -767,7 +788,7 @@ $ autoload -U age # convert 1st char of a word to uppercase $ foo="one two three four" - $ print -r -- "${(C)var}" + $ print -r -- "${(C)foo}" One Two Three Four ------------------------------------------------------------------------------- @@ -829,6 +850,21 @@ ZMV-Examples (require autoload zmv) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *Note:* '-n' means no execution (just print what would happen). At ------------------------------------------------------------------------------- +# Remove illegal characters in a fat32 file system. Illegal characters are +# / : ; * ? " < > | +# NOTE: ``-Q'' and (D) is to include hidden files. + $ unwanted='[:;*?\"<>|]' + $ zmv -Q "(**/)(*$~unwanted*)(D)" '$1${2//$~unwanted/}' + +# Changing part of a filename (i. e. "file-hell.name" -> "file-heaven.name") + $ zmv '(*)hell(*)' '${1}heaven${2}' + # or + $ zmv '*' '$f:s/hell/heaven/' + +# remove round bracket within filenames +# i. e. foo-(bar).avi -> foo-bar.avi + $ zmv '*' '${f//[()]/}' + # serially all files (foo.foo > 1.foo, fnord.foo > 2.foo, ..) $ autoload zmv $ ls *