Outils pour utilisateurs

Outils du site


lang:bash

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

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

lang/bash.txt · Dernière modification : 2022/07/26 11:47 de root