Как читать файл, начиная с определенного количества строк внутри & ldquo; while read & rdquo ;?

Все, что я хочу, это указать определенное количество строк, подобных этому lineNumberIs=3, и сказать, когда прочитано, чтобы начать с этой третьей строки, или какой номер строки и выбор строк после операндов, чтобы выполнить некоторые команды позже на выборке строки Что-то вроде этого

 while read line from $lineNumberIs
    do
    **some commands not just echo nor printing on the screen** 
    done < $dataFile
1
задан 1 November 2017 в 05:03

2 ответа

#!/bin/bash
if [ $# -eq 0 ]; then
        echo "Please execute $0 with linestoskip parameter"
        exit 0
fi
linestoskip=$1
Counter=0
dataFile='/etc/fstab'
while read line
do
        if [ $Counter -ge $linestoskip ]; then
                echo $line
        fi
        Counter=`expr $Counter + 1`
done < $dataFile

Этот сценарий ожидает, что количество строк будет пропущено в качестве параметра. Вы можете делать все, что хотите, во внутреннем состоянии if.

3
ответ дан 24 May 2018 в 22:49
  • 1
    заключается в том, что единственное, чего нет в синтаксисе псевдо-кода, который я поставил выше в моем вопросе, например, прочитав из ....? вообще – Ahmed Zain El Dein 1 May 2013 в 22:53
  • 2
    В bash вы можете использовать арифметические выражения: ((Counter++)), поэтому вам не нужно вызывать expr. – glenn jackman 2 May 2013 в 00:35

Очень простое решение -

tail -n +K filename

где K = номер строки, из которой вы хотите читать файл. Это начнет считывать файл с линии Kth до конца.

-1
ответ дан 24 May 2018 в 22:49

Другие вопросы по тегам:

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