Предпосылки
Убедитесь, что у вас установлена и настроена система на базе Linux. Мы будем работать над Ubuntu 20.04 Система Linux. Войдите в систему под своей учетной записью пользователя Ubuntu, чтобы начать работу над IFS. Будет лучше, если вы войдете в систему под своей учетной записью root. После входа в систему запустите терминал командной строки в своей системе из области «Активность».
Пример 01: IFS разделяет строку с использованием пробела в качестве значения
В нашем первом примере мы поймем концепцию разделения строки в bash при использовании пробела в качестве значения-разделителя с помощью переменной IFS. Во-первых, нам нужно создать файл bash в нашей системе. Мы можем создавать новые файлы в нашей системе Linux с помощью команды touch. Как показано ниже, мы создали файл bash 'file1.sh 'с помощью инструкции' touch ':
$ touch file1.ш
Откройте домашний каталог вашей системы Linux, используя значок папки, отображаемый в левом углу вашего Ubuntu 20.04 рабочий стол. Вы найдете свой недавно созданный файл bash «file1.ш »в этом. Откройте файл «file1.sh »и введите приведенный ниже сценарий. Во-первых, мы определили строку с именем «str» с некоторым строковым значением в ней. Затем мы определяем переменную-разделитель IFS как переменную, имеющую в качестве значения пробел. После этого мы использовали оператор чтения для сохранения и чтения разделенных данных в массив «strarr» с помощью флага «-a». Оператор 'echo' используется для печати строки строки вместе с подсчетом общего количества слов в массиве с использованием «$ # strarr [*]». Цикл «for» используется для печати значений массива в разделенной форме с использованием переменной «var». Обратная косая черта «\ n» использовалась в строке печати вместе с переменной «var», чтобы разделить одну строку после каждого значения массива. Сохраните сценарий с помощью клавиши «Ctrl + S» и закройте файл, чтобы продолжить.
Вернись на сторону терминала. Теперь мы проверим вывод приведенного выше кода. Для этого мы будем использовать команду 'bash' вместе с именем файла «file1.sh », чтобы выполнить его, как показано ниже. Во-первых, он отображал строку, упомянутую в операторе «echo», вместе с количеством слов в массиве. После этого он отобразил все значения массива, используя цикл «for», разделенный IFS.
$ bash file1.ш
Пример 02: IFS разделяет строку с использованием символа в качестве значения
В вышеупомянутом примере вы видели, как разбить строковые переменные на части, используя пробел в качестве разделителя IFS. Теперь мы будем использовать символ для разделения строки с помощью разделителя IFS. Откройте командный терминал и создайте новый файл bash «file2.sh »в домашнем каталоге системы Linux с помощью следующей команды« touch »:
$ touch file2.ш
Откройте домашний каталог вашей системы Linux. Вы найдете в нем свой недавно созданный файл. Откройте только что созданный файл и напишите представленный ниже код на bash. В строке 3 мы инициировали оператор «echo» для печати строки. Следующая строка считывает данные, введенные пользователем в терминале с использованием ключевого слова read. Затем мы определили разделитель «IFS» и установили запятую «,» в качестве его символьного значения. Другой оператор «чтения» был задан для чтения и сохранения значений, разделенных запятыми, в строке, которая вводится пользователем в массив «strarr». Наконец, мы инициировали три оператора эха для печати значений разделения, разделенных запятыми, в виде переменных, как показано на изображении. Сохраните и закройте этот файл.
Теперь нам нужно запустить этот сохраненный файл. Выполните показанную ниже команду bash, за которой следует имя файла в терминале, чтобы сделать это. Вы должны добавить строковое значение, которое должно содержать запятую «,» внутри значений, и нажать кнопку Enter. Теперь ваши данные сохранены в массиве strarr. Последние три строки показывают вывод операторов «эхо». Как видите, каждый текст до и после запятой использовался как отдельное значение.
$ bash file2.ш
Пример 03: IFS Split String
Мы сделали оба предыдущих примера в файле bash. Теперь у нас будет иллюстрация использования «IFS» без создания файла bash. Откройте командную оболочку, чтобы сделать это. Во-первых, нам нужно создать строку «var» со строковым значением в ней. Эта строка содержит запятые после каждого слова.
$ var = ”Привет, мне 25 лет.”Затем инициализируйте переменную IFS с помощью символьной запятой в качестве значения разделителя.
$ IFS =,После этого мы использовали цикл «for» для поиска каждого слова из переменной «var», разделенного запятой-разделителем IFS, и вывода его с помощью оператора «echo».
$ for i в $ var> делать
> эхо [$ i]
> Готово
У вас будет результат ниже. Он покажет каждое слово строковой переменной «var» на новой строке из-за запятой-разделителя «», используемой в качестве символа разделения.
Заключение:
В этом руководстве вы узнали о различных методах разделения входных значений в bash, e.грамм., с пробелом или с символом. Мы надеемся, что иллюстрации, упомянутые в этом руководстве, помогут вам разбить каждую строку с помощью разделителя IFS.