=====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{$_}++'
[[https://stackoverflow.com/questions/2109056/how-to-find-duplicate-files-with-same-name-but-in-different-case-that-exist-in-s|How to find duplicate files with same name but in different case that exist in same directory in Linux?]] {{ lang:bash:bash_-_how_to_find_duplicate_files_with_same_name_but_in_different_case_that_exist_in_same_directory_in_linux_-_stack_overflow_2020-04-27_10_55_51_am_.html |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
=====Auto complétion=====
Ajouter au fichier ''.bashrc'' :
_script()
{
# Commande à exécuter pour avoir la liste des possibilités.
_script_commands=$(/path/to/your/script.sh -l)
local cur
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
COMPREPLY=( $(compgen -W "${_script_commands}" -- ${cur}) )
return 0
}
# script.sh est la commande qui va autoriser l'affichage des propositions.
complete -o nospace -F _script script.sh
[[https://askubuntu.com/questions/68175/how-to-create-script-with-auto-complete/483149#483149|How to create script with auto-complete?]] {{ :lang:bash:bash_-_how_to_create_script_with_auto-complete_-_ask_ubuntu_26_07_2022_11_46_19_.html |Archive du 17/10/2011 le 26/07/2022}}