Я пытаюсь найти определенную строку во многих файлах czv gziped, строка находится в первой строке, и я думал, что нужно получить первую строку каждого файла путем объединения find, zcat и head. Но я не могу заставить их работать вместе.найти результаты, отправленные в zcat, а затем в голову
$find . -name "*.gz" -print | xargs zcat -f | head -1
20051114083300,1070074.00,0.00000000
xargs: zcat: terminated by signal 13
example file:
$zcat 113.gz | head
20050629171845,1069335.50,-1.00000000
20050629171930,1069315.00,-1.00000000
20050629172015,1069382.50,-1.00000000
.. and 2 milion rows like these ...
Хотя я решил проблему, написав Баш скрипт, итерация файлы и записи во временный файл, было бы здорово, чтобы знать, что я сделал не так, как это сделать, и если бы другие способы сделать это.
работал безупречно, спасибо. не знал, что вы можете использовать и читать так, я запомню это. – furedde
Вы также можете использовать: 'for f in * .gz; do zcat $ f | head -n 1; done' – arekolek
@arekolek: что не является рекурсивным, если вы не используете 'shopt -s globstar; для f в **/*. gz', а 'find' - рекурсивный, если вы не ограничиваете его' -maxdepth'. –