Вопрос:

Чтение групп строк из файла в скрипте bash

bash shell

40 просмотра

1 ответ

0 Репутация автора

Я хотел бы иметь возможность читать группы строк из файла в сценарии bash. Следующий код печатает первую строку файла дважды

   #!/bin/bash
   filename=$1
   read -r line < "$filename"
   echo $line
   read -r line < "$filename"
   echo $line

тогда как я хотел бы напечатать вторую строку. Следующий код печатает ВСЕ строки файла

   #!/bin/bash
   filename=$1
   while read -r line
   do
      echo $line
   done < "$filename"

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

   # Read in a line from a file.
   # Do something with that line.
   #
   # Read in the next 5 lines from the file.
   # Do something different with those lines.
   #
   # etc.

Благодарю.

Автор: user7124376 Источник Размещён: 13.04.2017 03:49

Ответы (1)


2 плюса

465705 Репутация автора

Оберните весь код в блок, перенаправленный из файла:

{
    read line
    // do something with $line
    ...
    read line2
    // do something with $line2
    ...
} < "$filename"
Автор: Barmar Размещён: 13.04.2017 03:52
32x32