(t)csh: как получить сжатый текстовый файл gzip?

Я ищу команду Unix, которая позволяет «исходить» текст в сжатом текстовом файле gzip.

Если мое объяснение недостаточно ясно, я имею в виду команду, которая сначала распаковывает файл, а затем запускает над ним исходную команду, например zgrep, zcat, zless и т. д.

Спасибо!


person SomethingSomething    schedule 24.03.2014    source источник
comment
Какую оболочку конкретно вы используете?   -  person Charles Duffy    schedule 24.03.2014
comment
Поскольку csh (и, следовательно, tcsh) не совместим с POSIX sh, я ничем не могу вам помочь. Пожалуйста, будьте более точны, когда вы используете нестандартную оболочку - большинство людей склонны полагать, что оболочка unix означает POSIX.   -  person Charles Duffy    schedule 24.03.2014
comment
... Я отредактировал вопрос, чтобы он был более явным.   -  person Charles Duffy    schedule 24.03.2014
comment
Вопрос еще не супер ясен. gunzip -c распаковывает файл .gz в стандартный вывод, затем вы можете передать это команде по вашему выбору, например, gunzip -c file.txt | grep "pattern" или gunzip -c file.txt | head -10. Это то, что вы имели в виду?   -  person Josh Jolly    schedule 24.03.2014
comment
сделал несколько быстрых тестов и, учитывая мой X-летний опыт работы с csh, я ожидал, что eval "gunzip -c file2source" сработает. Он распечатал каждую строку setenv myX x и т.д., но не выполнил их, т.е. echo $myX вернул Undefined Variable myX. Также попробовал eval eval (на всякий случай). Я думаю, вам придется разархивировать в настоящий файл и получить его, а затем очистить. Удачи.   -  person shellter    schedule 24.03.2014
comment
@JoshJolly, sourceing в csh - это единственный способ добиться sh|bash|ksh эквивалента . envFile, так что envFile запускается в той же среде, что и основной сценарий оболочки. Распространенным методом является изоляция переменных среды от остального кода скрипта, что помогает уменьшить количество ошибок в выпусках. Всем удачи.   -  person shellter    schedule 24.03.2014


Ответы (1)


Разрабатывая подход оболочки, вы можете использовать

eval `gunzip -c file2source.gz|tr \\n \;`

для простых скриптов. (Я говорю простой, потому что командные строки в файле объединены в одну строку.)

Кроме этого,

распаковать в реальный файл и получить его,

кажется единственным способом.

person Armali    schedule 03.02.2015