lang:bash
Ceci est une ancienne révision du document !
Table des matières
string
Manipulation de string
Récupérer le nième élément avec pour séparateur un délimiteur :
echo "id:011676,sync:fuzzer07,src:011923.txt" | cut -d'.' -f 1 id:011676,sync:fuzzer07,src:011923
echo "id:011676,sync:.fuzzer07,src:011923.txt" | cut -d'.' -f 2 fuzzer07,src:011923
Récupérer du premier et le nième élément avec pour séparateur un délimiteur :
echo "id:011676,sync:.fuzzer07,src:011923.txt" | cut -d'.' -f -2 id:011676,sync:.fuzzer07,src:011923
Récupérer le rendu d'une commande
- Depuis la sortie standard :
result=$(echo coucou)
- Depuis la sortie erreur :
result=$(echo coucou 2>&1 > /dev/null)
- Depuis la sortie standard et erreur :
result=$(echo coucou 2>&1)
- Utiliser une variable multiligne :
# Préserver les retours à la ligne echo "$result" # Ignorer les retours à la ligne echo $result
- Faire une boucle d'une variable multiligne :
- Tout d'un coup
for doci in "$result" do echo $doci done
- Mot par mot
for doci in $result do echo $doci done
- Ligne entière
while read -r doci do echo $doci done <<< "$result"
Fichiers
Trouver les fichiers ayant le même nom mais une case différente
find . | perl -ne 's!([^/]+)$!lc $1!e; print if 1 == $seen{$_}++'
How to find duplicate files with same name but in different case that exist in same directory in Linux? Archive du 21/01/2010 le 27/04/2020
Supprimer le fichier le plus ancien si deux fichiers ont le même nom mais pas la même extension
ls | sed 's/\(.*\)\..*/\1/' | sort | uniq -d | while read line; do rm "$(ls -t "$line."* | tail -1)"; done
lang/bash.1601586177.txt.gz · Dernière modification : 2020/10/01 23:02 de root