Во время чтения строки - ограничение количества строк - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь ограничить количество строк, найденных во время цикла чтения строки. Например:

Файл: order.csv

 123456,ORDER1,NEW
 123456,ORDER-2,NEW
 123456,ORDER-3,SHIPPED

Я делаю следующее.

 cat order.csv | while read line;
 do
  order=$(echo $line | cut -d "," -f 1)
  status=$(echo $line | cut -d "," -f 3)
  echo "$order:$status"
 done

Какие выходы:

  123456:NEW
  123456:NEW
  123456:SHIPPED

Как я могу ограничить количество строк. В этом случае их три. Как я могу ограничить их только 2, чтобы отображались только первые два?

Желаемый вывод:

  123456:NEW
  123456:NEW

1 Ответ

0 голосов
/ 06 сентября 2018

Есть несколько способов удовлетворить ваши требования:

Метод 1

Используйте head для отображения первых нескольких строк файла.

head -n 2 order.csv | while read line;
do
    order=$(echo $line | cut -d "," -f 1)
    status=$(echo $line | cut -d "," -f 3)
    echo "$order:$status"
done

Метод 2

Используйте цикл for.

for i in {1..2}
do
    read line
    order=$(echo $line | cut -d "," -f 1)
    status=$(echo $line | cut -d "," -f 3)
    echo "$order:$status"
done < order.csv

Метод 3

Использование awk.

awk -F, 'NR <= 2 { print $1":"$3 }' order.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...