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

result=$(echo coucou)
result=$(echo coucou 2>&1 > /dev/null)
result=$(echo coucou 2>&1)
# Préserver les retours à la ligne
echo "$result"
# Ignorer les retours à la ligne
echo $result
for doci in "$result"
do
 echo $doci
done
for doci in $result
do
 echo $doci
done
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

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

How to create script with auto-complete? Archive du 17/10/2011 le 26/07/2022