Сложный поиск и замена в Vim или Sed

С помощью read-dиспользуется для завершения входных линий (, т.е. не для разделения входных строк ). Ваша последняя «строка» не содержит терминатора, поэтому readвозвращает false в EOF, и цикл завершается (, хотя последнее значение было прочитано ).

echo '0,1,2,3,4,5' | { while read -d, i; do echo "$i"; done; echo "last value=$i"; }

(Даже с -dreadтакже использует $IFS, поглощая пробелы, включая конечный \nв конечном значении, которое появится при использовании других методов, таких какreadarray)

В FAQ по Bash обсуждается это и как поступать в различных подобных случаях:

1
13.07.2021, 02:30
0 ответов

Теги

Похожие вопросы