Cambia il valore in un file di configurazione
L’assegnazione di una variabile in un file di configurazione viene modificato al volo:
cat test.txt VAR1=TEST VAR2=1 VAR3=VALUE VAR=VAR2 VAL=1 sed -i "s/^${VAR}=.*/${VAR}=${VAL}/" test.txt cat test.txt VAR1=TEST VAR2=1 VAR3=VALUE
Converte una elenco in una lista con separatore
È possibile trasformare una lista di elementi in una serie di elementi separati da “,” (o altro separatore), racchiudendo eventualmente gli elementi tra apici
$ cat lista_testo.txt pippo pluto paperino $ awk '{if(NR>1) printf ",";printf "%c%s%c",39,$0,39;}END{print "";}' \ lista_testo.txt 'pippo','pluto','paperino'
Formattazione automatica di una tabella
Incolonnamento di una tabella
$ cat unformatted.txt pippo pluto paperino paperino pippo pluto pippo topolino paperino paperino topolino pippo pippo topolino pluto paperino
Formatta automaticamente
$ awk '{for(i=1;i<=NF;i++){M[i]=(length($i)>M[i])?length($i):M[i];}} END{printf "awk :{printf \"";for(i=1;M[i]>0;i++){printf "%%-%ss ",M[i]+1} printf "\\n\""; for(i=1;M[i]>0;i++){printf ",$%s",i}printf ";}: unformatted.txt \n" }' unformatted.txt |tr -s ":" "'" | bash pippo pluto paperino paperino pippo pluto pippo topolino paperino paperino topolino pippo pippo topolino pluto paperino
Valorizzo più variabili dall’output di un comando
$ read A B C < <(echo 1 2 3) $ echo $A - $B - $C 1 - 2 - 3
Codice ascii di un carattere
Ricava il codice ascii di un carattere
$ X=A $ ASC=`printf "%d\n" "'$X"` $ echo $ASC 65
Carattere corrispondente ad un codice ascii
Visualizza il corrispondente carattere
$C=65 $awk -v c=$C 'BEGIN{printf "%c\n",c;}'
Caratteri speciali nei nomi di file
Cancellare un file che si chiama \303\271
Il reale nome del file è dato dai caratteri con codici ascii 303 e 271 in ottale che corrispondono a 195 e 185 in decimale: questa sequenza corrisponde al carattere ù in UTF8
A=`echo "x" | awk '{ printf "%c\n",195;}'` B=`echo "x" | awk '{ printf "%c\n",185;}'` rm "$A$B"
Check sul filesystem
Controlla lo spazio libero e in uso nel filesystem corrente (in kbyte)
$ df -k .
In particolare visualizza lo spazio occupato da una cartella
$ du -ks nomecartella
Testi colorati
Settate le variabili d’ambiente:
export ESC="\033" export F0="${ESC}[0;30m" export F1="${ESC}[0;31m" export F2="${ESC}[0;32m" export F3="${ESC}[0;33m" export F4="${ESC}[0;34m" export F5="${ESC}[0;35m" export F6="${ESC}[0;36m" export F7="${ESC}[0;37m"
E utilizzare nel seguente modo
printf "${F0}Nero${RESET}\n" printf "${F1}Rosso${RESET}\n" printf "${F2}Verde${RESET}\n" printf "${F3}Giallo${RESET}\n" printf "${F4}Blu${RESET}\n" printf "${F5}Magenta${RESET}\n" printf "${F6}Ciano${RESET}\n" printf "${F7}Bianco${RESET}\n"
Premi un tasto
Premi un tasto per fare quello che vuoi
function press_a_key { STTY=$(stty -g) stty -echo -icanon time 0 min 0 k="" while test ! -n "$k" do read k done echo $k stty $STTY } r="" while test "$r" != "x" do echo "Premi il tasto 'x' per uscire" r=$(press_a_key) echo "Hai premuto '$r'" done