Я работаю с построением чрезвычайно больших файлов с N количеством соответствующих записей данных. (N зависит от файлов).Использование GNU Utils с Mac Utils в bash
В каждом из этих файлов комментарии автоматически генерируются в начале и в конце файла и хотели бы отфильтровать их, прежде чем рекомбинировать их в один большой набор данных.
К сожалению, я использую MacOSx, где возникают некоторые проблемы при попытке удалить последнюю строку файла. Я прочитал, что наиболее эффективным способом было использование команд head/tail bash для отсечения разделов данных. Поскольку head -n -1 не работает для MacOSx, мне пришлось установить coreutils через homebrew, где команда ghead работает чудесно. Однако команда,
tail -n+9 $COUNTER/test.csv | ghead -n -1 $COUNTER/test.csv >> gfinal.csv
не работает. Менее приятное обходное решение заключалось в том, что мне пришлось отделить команды, использовать ghead> newfile, а затем использовать tail в newfile> gfinal. К сожалению, это займет время, поскольку я должен написать новый файл с первым ghead.
Есть ли способ обхода обоих GNU Utils со стандартными Mac Utils?
Спасибо, Keven
@ghoti: Отличная точка, спасибо; Я обновил ответ, хотя я выбрал вариант, который, на мой взгляд, лучше выражает намерение. – mklement0
Ах, я удалил свой комментарий, чтобы развернуть его в ответ. :) Ваш новый сценарий sed выражает цель OP с большей поэзией, но я не думаю, что он делает это более четко. Таким образом, он говорит «строки печати, которые соответствуют этим критериям», а не просто «удаляет эти диапазоны строк из потока». Я бы предположил, что это просто разные взгляды на проблему. (Но +1 для вашего великого объяснения, как обычно.) – ghoti
@ghoti: Спасибо; точка зрения изменилась. Я скажу, однако, что моя команда 'sed' более похожа на подход _OP_. – mklement0