Как напечатать столбец случайной строки - PullRequest
0 голосов
/ 09 ноября 2019

Я делаю домашнюю работу и мне нужна помощь по сценарию оболочки или nano редактору. Выходные данные должны быть:

[NAME], [YEAR] 
[RATING] 
[DESCRIPTION]

Где поля, отмеченные в квадратных скобках, соответствуют значениям полей фильма, выбранным случайным образом из тех, которые доступны в файле file.csv .

Проблема в том, что я не могу распечатать их по отдельности, я могу только напечатать случайную строку.

Я пытался отделить их с помощью команды cut -d " " -f1, но это не удалосьработа.

cat file.csv | wc -l
LINES=$(cat file.csv | wc-l)
R_LINE=$(($RANDOM % LINES))
sed -n "${R_LINE}p" file.csv
echo "NAME: "....., "YEAR:..... "
echo "RATING:..... "
echo "DESCRIPTION:......"

1 Ответ

0 голосов
/ 09 ноября 2019

Это можно сделать с помощью awk:

LINES=$(cat file.csv | wc-l)
R_LINE=$(($RANDOM % LINES))
awk -FS="," 'NR=='$R_LINE'{printf("NAME: %s, YEAR: %d\n\nRATING:%s\n\nDESCRIPTION:%s\n", $1,$2,$3,$4);exit}' file.csv

В этом коде предполагается, что атрибуты в file.csv перечислены в порядке name,year,rating,description. Если у вас другой порядок, измените номера столбцов в операторе printf соответственно.

...