Einzeiler
Aus VDR Wiki
(Unterschied zwischen Versionen)
Hulk (Diskussion | Beiträge) K (Kategorie) |
Wirbel (Diskussion | Beiträge) |
||
(9 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
==Einzeiler / Schnippsel== | ==Einzeiler / Schnippsel== | ||
+ | |||
+ | ===ffmpeg=== | ||
+ | Konvertierung beliebiger Videodateien ins VDR-TS Format Standardformat (4cif = 704×576) für klassische [[Full-featured-DVB-Karte]]n. | ||
+ | |||
+ | ffmpeg -i video_mp4_h264_aac.mp4 -f mpegts -vcodec mpeg2video -aspect 16:9 -sameq -s 4cif -acodec mp2 -ar 48000 -ab 192k 00001.ts | ||
===SPLIT=== | ===SPLIT=== | ||
− | + | split -b 95 xx.tar.gz xx.tar.gz.split. | |
− | + | Erzeugt aus Eingabedatei xx.tar.gz einen Schwung Dateien mit 95 Bytes Größe und Dateinamen nach dem Muster xx.tar.gz.split.aa xx.tar.gz.split.ab xx.tar.gz.split.ac ... | |
− | + | ||
+ | Die Option -b gibt an, wie groß die Zieldateien in Bytes sein sollen. | ||
+ | cat xx.tar.gz.split.* > xx.tar.gz | ||
+ | Fügt die per ''split'' aufgeteilten Dateien wieder zu xx.tar.gz zusammen. | ||
+ | tar -xvzf xx.tar.gz | ||
+ | Extrahiert das Archiv xx.tar.gz. Die Optionen: | ||
+ | *x - extract, aus Archiv extrahieren | ||
+ | *v - verbose, "redselig" - ausführliche Informationen ausgeben | ||
+ | *z - gzip als Kompressionsalgorithmus verwenden | ||
+ | *f - den folgenden Parameter als Dateinamen interpretieren | ||
===FIND/LS=== | ===FIND/LS=== | ||
Zeile 45: | Zeile 59: | ||
===SED=== | ===SED=== | ||
− | + | Einzelne Zeilen einer Datei können mit dem Kommando '''sed''' gelöscht werden. Das folgende Beispiel demonstriert, wie die erste, die letzte bzw. die zweite bis vierte Zeile aus einer Datei gelöscht werden. | |
− | + | ||
− | + | ||
sed -e '1d' file | sed -e '1d' file | ||
Zeile 60: | Zeile 72: | ||
cut -c 12-18 # die Zeichen 12 bis 18 jeder Zeile | cut -c 12-18 # die Zeichen 12 bis 18 jeder Zeile | ||
− | cut -f 2 -d ' ' # das 2.Feld, Feldtrenner ist ' '( | + | cut -f 2 -d ' ' # das 2.Feld, Feldtrenner ist ' '(Leerzeichen) |
− | tr -s '[:blank:]' # sqeeze | + | tr -s '[:blank:]' # sqeeze mehrere Leerzeichen-> ein Leerzeichen |
− | tr -d ' ' # alle | + | tr -d ' ' # alle Leerzeichen löschen |
===ZIP=== | ===ZIP=== | ||
− | gzip | + | gzip Datei.diff [*.diff] # führt zu Datei.diff.gz |
− | bzip2 -kv | + | bzip2 -kv Datei.diff [*.diff] # führt zu Datei.diff.bz2 |
− | tar cvIf dir.bz2 | + | tar cvIf dir.bz2 Ordner/* # alle Dateien im Ordner |
===WC/Emulation=== | ===WC/Emulation=== | ||
Zeile 111: | Zeile 123: | ||
$b:e ${b##*.} xxx | $b:e ${b##*.} xxx | ||
− | ${VAR#pattern} removes the shortest matching pattern, anchored at | + | ${VAR#pattern} # removes the shortest matching pattern, anchored at the beginning of the string. |
− | + | ${VAR##pattern} # removes the longest matching pattern, anchored at the beginning of the string. | |
− | + | ${VAR%pattern} # removes the shortest matching pattern, anchored at the end of the string. | |
− | ${VAR##pattern} removes the longest matching pattern, anchored at | + | ${VAR%%pattern} # removes the longest matching pattern, anchored at the end of the string. |
− | + | ${VARIABLE:-${WERT}} # Nutzt den Wert von Variable. Falls die Variable nicht gesetzt ist, wird der Wert benutzt. | |
− | + | ${VARIABLE:=${WERT}} # Nutzt den Wert von Variable. Falls die Variable nicht gesetzt ist, wird der Wert benutzt, und Variable erhält den Wert. | |
− | ${VAR%pattern} removes the shortest matching pattern, anchored at | + | ${VARIABLE:?${WERT}} # Nutzt den Wert von Variable. Falls die Variable nicht gesetzt ist, wird der Wert ausgegeben und die Shell beendet. |
− | + | # Wenn kein Wert angegeben wurde, wird der Text Parameter null or not set ausgegeben. | |
− | + | ${VARIABLE:+${WERT}} # Nutzt den Wert, falls die Variable gesetzt ist, andernfalls nichts. | |
− | ${VAR%%pattern} removes the longest matching pattern, anchored at | + | |
− | + | ||
− | + | ||
− | ${VARIABLE:-${WERT}} Nutzt den Wert von Variable. Falls die Variable nicht gesetzt ist, wird der Wert benutzt. | + | |
− | + | ||
− | ${VARIABLE:=${WERT}} Nutzt den Wert von Variable. Falls die Variable nicht gesetzt ist, wird der Wert benutzt, und Variable erhält den Wert. | + | |
− | + | ||
− | ${VARIABLE:?${WERT}} Nutzt den Wert von Variable. Falls die Variable nicht gesetzt ist, wird der Wert ausgegeben und die Shell beendet. | + | |
− | Wenn kein Wert angegeben wurde, wird der Text | + | |
− | + | ||
− | ${VARIABLE:+${WERT}} Nutzt den Wert, falls die Variable gesetzt ist, andernfalls nichts. | + | |
===EXPANSION=== | ===EXPANSION=== | ||
− | + | ~> line="foo bar cutoff baz cutoff fuz" | |
− | + | ~> text='cutoff' | |
− | + | ~> echo "${line#*$text}" | |
baz cutoff fuz | baz cutoff fuz | ||
− | + | ~> echo "${line##*$text}" | |
fuz | fuz | ||
Zeile 148: | Zeile 149: | ||
− | + | [[Kategorie:Skripte]] |
Aktuelle Version vom 1. September 2013, 13:11 Uhr
Inhaltsverzeichnis |
[Bearbeiten] Einzeiler / Schnippsel
[Bearbeiten] ffmpeg
Konvertierung beliebiger Videodateien ins VDR-TS Format Standardformat (4cif = 704×576) für klassische Full-featured-DVB-Karten.
ffmpeg -i video_mp4_h264_aac.mp4 -f mpegts -vcodec mpeg2video -aspect 16:9 -sameq -s 4cif -acodec mp2 -ar 48000 -ab 192k 00001.ts
[Bearbeiten] SPLIT
split -b 95 xx.tar.gz xx.tar.gz.split.
Erzeugt aus Eingabedatei xx.tar.gz einen Schwung Dateien mit 95 Bytes Größe und Dateinamen nach dem Muster xx.tar.gz.split.aa xx.tar.gz.split.ab xx.tar.gz.split.ac ...
Die Option -b gibt an, wie groß die Zieldateien in Bytes sein sollen.
cat xx.tar.gz.split.* > xx.tar.gz
Fügt die per split aufgeteilten Dateien wieder zu xx.tar.gz zusammen.
tar -xvzf xx.tar.gz
Extrahiert das Archiv xx.tar.gz. Die Optionen:
- x - extract, aus Archiv extrahieren
- v - verbose, "redselig" - ausführliche Informationen ausgeben
- z - gzip als Kompressionsalgorithmus verwenden
- f - den folgenden Parameter als Dateinamen interpretieren
[Bearbeiten] FIND/LS
ls -lahS $(find / -type f -size +10000k) find /video -follow -type d | grep -vEe ".(rec|del)$" find /cdrom/ -name *.deb -exec cp -v '{}' /var/cache/apt/archives ';' find / -type d -exec du -sh {} \; > /tmp/dirsizes.lst
[Bearbeiten] SED/EUMULATION
cat | sed ':' cat -s | sed '/./,/^$/!d' tac | sed '1!G;h;$!d' grep | sed '/patt/!d' grep -v | sed '/patt/d' head | sed '10q' head -1 | sed 'q' tail | sed -e ':a' -e '$q;N;11,$D;ba' tail -1 | sed '$!d' tail -f | sed -u '/./!d' cut -c 10 | sed 's/\(.\)\{10\}.*/\1/' cut -d: -f4 | sed 's/\(\([^:]*\):\)\{4\}.*/\2/' tr A-Z a-z | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/' tr a-z A-Z | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' tr -s ' ' | sed 's/ \+/ /g' tr -d '\012' | sed 'H;$!d;g;s/\n//g' wc -l | sed -n '$=' uniq | sed 'N;/^\(.*\)\n\1$/!P;D' rev | sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' basename | sed 's,.*/,,' dirname | sed 's,[^/]*$,,' xargs | sed -e ':a' -e '$!N;s/\n/ /;ta' paste -sd: | sed -e ':a' -e '$!N;s/\n/:/;ta' cat -n | sed '=' | sed '$!N;s/\n/ /' grep -n | sed -n '/patt/{=;p;}' | sed '$!N;s/\n/:/' cp orig new | sed 'w new' orig
[Bearbeiten] SED
Einzelne Zeilen einer Datei können mit dem Kommando sed gelöscht werden. Das folgende Beispiel demonstriert, wie die erste, die letzte bzw. die zweite bis vierte Zeile aus einer Datei gelöscht werden.
sed -e '1d' file sed -e '$d' file sed -e '2,4d' file sed -n '4p' file
sed -i "1a ..........." sed -i "1i ..........."
[Bearbeiten] CUT/TR
cut -c 12-18 # die Zeichen 12 bis 18 jeder Zeile cut -f 2 -d ' ' # das 2.Feld, Feldtrenner ist ' '(Leerzeichen) tr -s '[:blank:]' # sqeeze mehrere Leerzeichen-> ein Leerzeichen tr -d ' ' # alle Leerzeichen löschen
[Bearbeiten] ZIP
gzip Datei.diff [*.diff] # führt zu Datei.diff.gz bzip2 -kv Datei.diff [*.diff] # führt zu Datei.diff.bz2 tar cvIf dir.bz2 Ordner/* # alle Dateien im Ordner
[Bearbeiten] WC/Emulation
stringZ=abcABC123ABCabc echo ${#stringZ}
[Bearbeiten] INFO
awk '{ print $3 }' /proc/version awk '/model name/ {print $4}' < /proc/cpuinfo awk '/model name/ { print"" $4" "$5" "$6 }' < /proc/cpuinfo awk '/cpu MHz/ { print "MHz " $4 }' < /proc/cpuinfo awk '{ print "Kernel "$3 }' /proc/version cat /proc/interrupts cat /proc/net/dev cat /proc/pci lspci -v uname lsmod dmesg
[Bearbeiten] SCREEN
import -window root screen-`date "+%Y-%m-%d_%H:%M:%S"`.png
[Bearbeiten] DATE
sh | date +%s perl | perl -le 'print time' awk | awk 'BEGIN {print systime()}'
[Bearbeiten] SUBSTITUTION
a=/a/b/c/d b=b.xxx csh bash result ---- -------- ------ $a:h ${a%/*} /a/b/c $a:t ${a##*/} d $b:r ${b%.*} b $b:e ${b##*.} xxx
${VAR#pattern} # removes the shortest matching pattern, anchored at the beginning of the string. ${VAR##pattern} # removes the longest matching pattern, anchored at the beginning of the string. ${VAR%pattern} # removes the shortest matching pattern, anchored at the end of the string. ${VAR%%pattern} # removes the longest matching pattern, anchored at the end of the string. ${VARIABLE:-${WERT}} # Nutzt den Wert von Variable. Falls die Variable nicht gesetzt ist, wird der Wert benutzt. ${VARIABLE:=${WERT}} # Nutzt den Wert von Variable. Falls die Variable nicht gesetzt ist, wird der Wert benutzt, und Variable erhält den Wert. ${VARIABLE:?${WERT}} # Nutzt den Wert von Variable. Falls die Variable nicht gesetzt ist, wird der Wert ausgegeben und die Shell beendet. # Wenn kein Wert angegeben wurde, wird der Text Parameter null or not set ausgegeben. ${VARIABLE:+${WERT}} # Nutzt den Wert, falls die Variable gesetzt ist, andernfalls nichts.
[Bearbeiten] EXPANSION
~> line="foo bar cutoff baz cutoff fuz" ~> text='cutoff' ~> echo "${line#*$text}" baz cutoff fuz ~> echo "${line##*$text}" fuz
[Bearbeiten] ssh
ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N "" ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ""