После вашего комментария выглядит, что вам нужен простой цикл while read
:
while IFS=';' read -r id rest; do
if [[ "$id" == "10010101010" ]]; then
echo "Matching line : $id $rest"
fi
done < data.txt
В этом коде IFS=';'
указывает на использование символа ;
в качестве внутреннего разделителя полей длякоманда read
, которая заставит ее проанализировать каждую из ваших строк как четыре разных слова.
Имена, следующие за read -r
, соответствуют переменным, используемым для хранения каждого из этих слов, последнее из которых содержитостальная часть строки, если слов больше, чем переменных.
read -r id rest
сохранит первый столбец в переменной $id
, а оставшиеся слова - в $rest
, тогда как read -r first second third fourth
будет хранить каждое слово в своем собственномпеременная.
Ввод команды read
указывается в конце цикла while
, добавляя < data.txt
после done
закрытия цикла.