2017-01-17 9 views
0

Я работаю над назначением для своего класса linux, и я не уверен, что делать дальше. Существует каталог election2008, который содержит данные в электронных таблицах с 2008 года. В election2008 существует шесть каталогов, Apr, Aug, Feb, Jan,, Jun. И внутри них электронные таблицы для каждого дня месяца в CSV-файлах.Используйте find и скрипт для извлечения данных в терминале Linux

Я создал сценарий под названием extractdata, который возьмет нужные мне данные из электронных таблиц. Мне не нужны первые 2 строки или любая из строк после 53. Поэтому я создал следующий скрипт extractdata.

#!/bin/bash 
head -n 53 $1 | tail -n 51 

Следующим шагом является использование find команды и мой extractdata скрипт, чтобы получить данные всех файлов .csv в месяц каталогов, а затем поместить результаты в файле с именем polls.csv. Я застрял в команде, которую мне нужно выполнить, чтобы это произошло.

ответ

1

Изнутри каталога election2008:

find . -type f -name "*.csv" | xargs -n1 <path to extractdata script> >> polls.csv 

Так что если extractdata находится в каталоге election2008 (и является исполняемым) было бы:

find . -type f -name "*.csv" | xargs -n1 ./extractdata >> polls.csv 

Поскольку эта команда добавления к опросам. csv, вам нужно будет удалить этот файл каждый раз, когда вы захотите его повторно запустить.