Выполните вывод скрипта, который извлекает данные из CSV

У меня есть файл с именами директоров и их работа, такие как имена созданных ими фильмов и вся информация, связанная с этим.

Здесь я привел первые две строки файла.

Мне нужно решение, такое как имя режиссера и количество фильмов, сделанных им перед его / ее именем. Я могу получить количество фильмов следующим образом, используя сортировку и уникальные команды в конвейерах. Код выглядит так:

tail -n+2 biopic.csv | awk -F "\"*,\"*" '{print $6}' | sort | uniq -c 

который предоставляет мне список директоров, которым предшествует количество фильмов, которые они сделали.

То, что я действительно хочу, – это имя режиссеров, которых следует за ними, а затем количество фильмов, которые они сделали.

Есть ли способ вставить запятую в вывод этой команды?

 title site country year_rele box_offic director number_ subject type_of_s race_kno subject_r person_of subject_s lead_actor_actress 10 Rillingt http://ww UK 1971 - Richard Fl 1 John Chris Criminal Unknown 0 Male Richard Attenborough 

2 Solutions collect form web for “Выполните вывод скрипта, который извлекает данные из CSV”

Вы можете perl -nle 'print "$2, $1" if /(\d+)\s(.+)/' его perl -nle 'print "$2, $1" if /(\d+)\s(.+)/'

Это просто запускает линейное выражение из стандартного ввода.

Для сравнения, я сделал тест biopic.csv и с некоторыми строками на основе вашего примера, разделенными запятыми.

 10,Rillingt,http://ww,UK 1971,-,Richard Fl,1,John Chris,Criminal,Unknown,0,Male,Richard Attenborough 10,Rillingt,http://ww,UK 1971,-,Don Fl,1,John Chris,Criminal,Unknown,0,Male,Richard Attenborough ... 

Выполнение вашей команды дает мне

 $ tail -n+2 biopic.csv | awk -F "\"*,\"*" '{print $6}' | sort | uniq -c 6 Don Fl 5 Richard Fl 

Чтобы развернуть его и добавить запятую, вы можете снова использовать awk. Разделите в пространстве то, что у вас уже есть, и добавьте символы, которые вам нужны, (используя «»). подобно

 print $2 " " $3 ", " $1 

как в

 <firstname> <lastname>, <count> 

Это дает мне это

 $ tail -n+2 biopic.csv | awk -F "\"*,\"*" '{print $6}' | sort | uniq -c | awk -F ' ' '{print $2 " " $3 ", " $1}' Don Fl, 6 Richard Fl, 5 
  • Координаты данных с awk
  • Calc добавляет '(апостроф) при импорте времени из CSV
  • Как я могу показать, сколько строк позиций переместилось в diff-выход?
  • Как манипулировать CSV-файлом с помощью sed или awk?
  • печатать дубликаты строк только в полях 1,2 из файла csv
  • текст для создания файла xls
  • Создайте таблицу ASCII art из табличных данных
  • Как извлечь одно значение из однострочных кортежей?
  • Вырезать определенную часть столбца из файла csv
  • Репликация столбца в однострочном файле CSV
  • Удаление лишних пробелов, но не новая строка из csv-файлов
  • Linux и Unix - лучшая ОС в мире.