Untitled

 avatar
unknown
plain_text
5 months ago
3.8 kB
2
Indexable
### exemple if
\#!/bin/bash
if [ $# != 1 ]
then
	echo "pas de parametres"
	exit 1
elif [ ! -e $1 -o ! -f $1 ]
then
	echo "pas de fichier"
	exit 1
elif [ ! -d ".poubelle" ]
then
	mkdir .poubelle
fi
echo "prog"
mv $1 .poubelle/

if [ $# -eq 5 ]

### exemple case

#!/bin/bash
case $2 in
	"+") echo ` expr $1 + $3 `;;
	"-") echo ` expr $1 - $3 `;;
	'*') echo ` expr $1 \* $3 `;;
	"/") echo ` expr $1 / $3 `;;
	"%") echo ` expr $1 % $3 `;;
	*) echo opérateur inconnu
esac



### exemple for
#!/bin/bash
nb=0
for i in ` echo $1 | sed 's/\(.\)/\1 /g' `
	do
	case $i in
		[aeiouy]) nb=`expr $nb + 1 `;;
	esac
	done
echo Le nombre de voyelle est de $nb


for dans un range : 

for i in {1 ..5}; do echo $i; don;
### Exemples grep
grep ^[aA] fichier.txt \ lignes commençant par a ou A
grep es$ fichier.txt \ lignes finissant par es
grep [^\.,\;:?\!]$ fichier.txt \ lignes finissant par de la ponctuation
grep ''[^[punct]]$'' fichier.txt \ pareil
grep ^[ra-m] fichier.txt \lignes commençant par r ou lettre de a à m
grep ^[^aeiouAEIOU].*?$ fichier.txt \ lignes commençant par voyelle et finissant par un ?


### SED + GREP
cat fichier.txt | sed 's/ /\n/g' | grep -E ''^[a-zA-Z]{6}'' \ MOTS COMMENCANT PAR AU MOINS 6 LETTRES
cat fichier.txt | sed 's/ /\n/g' | grep -E "^[a-zA-Z]{3}([^a-zA-Z]|$)" \ MOTS COMMENTCANT PAR EAXACTEMENT 3 LETTRES
cat fichier.txt | sed 's/ /\n/g' | grep -E "^r[[:alpha:]]{0,6}([^[:alpha:]]|$)" \ MOTS COMMENCANT PAR UN "r" MAX 6 LETTRES
cat fichier.txt | sed 's/ /\n/g' | grep -E ''^[a-e](re|gu)'' \ MOTS COMMENCANT PAR UNE LETTRE ENTRE A ET ET PUIS PAR RE OU GU

### sed
1- sed 's/^ *//g' fichier.txt \Supprime les espaces en début de ligne
2- sed 's/^/ /g' fichier.txt \ affiche 3 espaces au début de chaque ligne
3- ls *.c | sed 's/\.c$//' | sed 's/^\(.\).*\(.\).$/\1\2/' (ou ls | grep ''\.c$'' ….) \ affiche la liste des fichiers .c en concervant uniquement le premier et l'avant dernier car du nom
4- ls -l | grep "^-" | sed 's/^\([^ ]*\).*\( [^ ]*\)$/\1 → \2/' \ lsite des fichiers du répertoire courant avec permissions et noms du fichier séparés par ->

### FIND

1- find . -type f -perm -002 2> /dev/null \ fichiers sur lesquels les autres peuvent écrire
2- find . -type f -perm -002 -mmin -2 2> /dev/null \ 1 + modifiés y a moins de deux minutes
3- find . -type f -size +100k -exec file {} \; \ taille supérieur ) 100KO + affiche type
4- find . -type f -name ''*.c'' | tee fichiers.txt | wc -l \ fichiers d'extension .c nom inséré dans un fichier txt puis print nombre fichier trouvé (word count)
5- find . -type f \( -name 'file*' -o -name 'var*' \) -name '*.tx[ab]' -exec chmod go-rwx {} \; \fichiers dont le nom commence par file ou var et l'extension est txt/txa, modifie leur perm en supprimant tous les droits aux groups et autres
find . -type f \( -name 'file*' -o -name 'var*' \) -a \( -name '*.txa' -o -name '*.txb' \) -exec chmod go-rwx {} \


### trucs au pif
man !!!!!!
export val="oui"
ls -la
chmod 777 test.txt
chmod uo+r test.txt
chmod g= test.txt
cat fichier
touch fichier 
mkdir dossier
rm fichier
cd
cp 
mv
alias ma_commande=''commande + options''
~/.profile ou ~/.bash_profile puis ~/.bashrc
uname
cut


### Classes prédéfinies 
[[:alpha:]] n'importe quelle lettre
[[:digit:]] n'importe quel chiffre
[[:xdigit:]] caractères héxadécimaux
[[:alnum:]] n'importe quelle lettre ou chiffre
[[:space:]] n'importe quel espace blanc
[[:punct:]] n'importe quel signe de ponctuation
[[:lower:]] n'importe quelle lettre en minuscule
[[:upper:]] n'importe quelle lettre capitale
[[:blank:]] espace ou tabulation
[[:graph:]] caractères affichables et imprimables
[[:cntrl:]] caractères d'échappement
[[:print:]] caractères imprimables exceptés ceux de contrôle
Editor is loading...
Leave a Comment