# Lire un fichier ```bash $ cat test.txt ubuntu Linux mint Linux debian Linux raspbian Linux mojave macOS sierra macOS tiger macOS snowleopard macOS ``` #### Lire un fichier: ```bash $ cat read.sh #!/bin/bash while read line do echo "Line is : $line" done < test.txt $ ./read.sh Line is : ubuntu Linux Line is : mint Linux Line is : debian Linux Line is : raspbian Linux Line is : mojave macOS Line is : sierra macOS Line is : tiger macOS Line is : snowleopard macOS ``` #### Lire un fichier tabulé: ```bash $ cat read.sh #!/bin/bash while read f1 f2 do echo "Distrib : $f1" echo "OS : $f2" done < test.txt $ ./read.sh Distrib : ubuntu OS : Linux Distrib : mint OS : Linux Distrib : debian OS : Linux Distrib : raspbian OS : Linux Distrib : mojave OS : macOS Distrib : sierra OS : macOS Distrib : tiger OS : macOS Distrib : snowleopard OS : macOS ``` #### Changer le séparateur: ```bash $ cat read.sh #!/bin/bash while read f1 f2 do echo $f1:$f2 done < test.txt > test2.txt $ cat test2.txt ubuntu:Linux mint:Linux debian:Linux raspbian:Linux mojave:macOS sierra:macOS tiger:macOS snowleopard:macOS ``` Lire un fichier .csv: ```bash $ cat test.csv ubuntu,Linux mint,Linux debian,Linux raspbian,Linux mojave,macOS sierra,macOS tiger,macOS snowleopard,macOS $ cat read.sh # !/bin/bash IFS="," while read f1 f2 do echo "Distrib : $f1" echo "OS : $f2" done < test.csv $ ./read.sh Distrib : ubuntu OS : Linux Distrib : mint OS : Linux Distrib : debian OS : Linux Distrib : raspbian OS : Linux Distrib : mojave OS : macOS Distrib : sierra OS : macOS Distrib : tiger OS : macOS Distrib : snowleopard OS : macOS ``` Ne pas changer le séparateur définitivement: ```bash $ cat read.sh # !/bin/bash OLDIFS=$IFS IFS="," while read f1 f2 do echo "Distrib : $f1" echo "OS : $f2" done < test.csv IFS=$OLDIFS ``` ```bash $ cat read.sh # !/bin/bash while IFS="," read f1 f2 f3 do echo "Distrib : $f1" echo "OS : $f2" done < test.csv ``` Multiples séparateurs: ```bash IFS=":/" ```