2013-10-27 4 views
1

Я пытаюсь прочитать текст Файл- «info.txt», который содержит следующую информациючтения - Баш

info.txt

1,john,23 
2,mary,21 

, что я хочу сделать, это хранить каждый столбцы в переменную и распечатать любой из столбцов.

Я знаю, что это может показаться вам простым, но я новичок в написании сценария bash, я знаю только, как читать файл, но я не знаю, как разграничить и просить помощь. Благодарю.

while read -r columnOne columnTwo columnThree 
do 
echo $columnOne 
done < "info.txt" 

выход

1, 
2, 

ожидается выход

1 
2 

ответ

4

Вам необходимо установить разделитель:

while IFS=, read -r columnOne columnTwo columnThree 
do 
echo "$columnOne" 
done < info.txt 
+0

большое спасибо за помощь – user3429531

0

хорошо проверить, существует ли файл тоже.

#!/bin/bash 
INPUT=./info.txt 
OLDIFS=$IFS 
IFS=, 
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; } 
while read -r columnOne columnTwo columnThree 
do 
    echo "columnOne : $columnOne" 
    echo "columnTwo : $columnTwo" 
    echo "columnThree : $columnThree" 
done < $INPUT 
IFS=$OLDIFS 
Смежные вопросы