Internal Field Separator

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

L'Internal Field Separator (IFS) est une variable de shell Unix (bash, sh, etc.) définissant les séparateurs de champ reconnus par l'interpréteur.

Cette variable, nommée IFS, est souvent qualifiée improprement de variable d'environnement, ce qui est inexact ; il serait plus rigoureux de parler de variable de shell (ou de variable système).

Valeurs habituelles[modifier | modifier le code]

En général, IFS définit comme séparateurs 3 caractères

  1. espace
  2. tabulation (\t)
  3. saut de ligne (\n).

Pour vérifier cette valeur, il suffit de taper la commande :

set | grep ^IFS=

Le résultat habituel est :

IFS=$' \t\n'

On aura parfois besoin de redéfinir cette valeur, par exemple dans le cas où on ne souhaite pas que l'espace serve de séparateur (cas typique : on a à traiter des fichiers dont les noms contiennent des espaces) : IFS=$'\n' permet de ne traiter que les sauts de ligne comme internal field separator.