У меня большой многострочный текстовый файл, прочитайте содержимое строки в переменную bash до указанного символа c (терминатор) - PullRequest
0 голосов
/ 02 марта 2020

Скажем, у меня есть файл с содержимым ниже, формата нет, но разделитель полей - ";"

This is  one field
on a line 
with some characters;
This is  one field 
on a line with some characters;
This is  one field on a line with some characters;

Назначьте поле для переменной, подобной этой. VAR = "Это одно поле в строке с несколькими символами"

Попробовал следующий код

IFS=';'
while read -r line
do
VAR="$line" 
done < "$file"

Но VAR содержит только "Это одно поле". Он не использует IFS = ; и только выбирает каждую строку с новой строкой.

1 Ответ

0 голосов
/ 02 марта 2020

Попробуйте

while IFS= read -r -d ';' field; do
    printf '\n[FIELD]\n%s\n' "$field"
done <"$file"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...