grep на удаленной машине

Утилита displayиз набора инструментов ImageMagick -6 может использоваться для просмотра многостраничного -tiff-файла. Я использую следующую команду для просмотра файлов tiff, отсканированных с помощью многофункционального принтера HP 8270 -:

display -rotate 90 -resize 1920x1080 Musings.tif

Утилита displayимеет множество параметров командной строки, из которых я счел нужными указанные выше. -resize, который немного привередлив в отношении того, какое разрешение он принимает, позволяет просматривать все изображение в уменьшенном разрешении без прокрутки.

Для перелистывания страниц щелкните правой кнопкой мыши -в любом месте изображения, затем, не отпуская кнопку, переместите курсор вниз к пункту «Следующая» или «Предыдущая» в контекстном -меню, затем отпустите кнопку. Я еще не нашел меню, которое напрямую перемещается на любую страницу/изображение в файле; однако может быть параметр командной строки -для выбора изображений для просмотра. (Справочная страница displayдовольно загадочна из-за своей краткости.)

Кроме того, в пакете tiff-toolsимеется ряд утилит, из которых особенно полезны следующие:

tiffcp : copy or concatenate images from one tiff file to another,
         optionally selecting and resequencing images from the input file(s).
tiffinfo : display the metadata for every image in a tiff.
tiffsplit : split a tiff file into individual files, 
            each containing a single image.

Вот пример использования tiffcpдля создания нового tiff-файла, содержащего выбранные изображения из одного файла и все изображения из другого:

tiffcp Musings-1.tif,5,6,0,1,2,3,4  Musings-2.tif Musings_new.tif

Пакет tiff-toolsтакже содержит ряд других утилит для редактирования и преобразования изображений в файлы tiff.

0
26.03.2019, 03:46
1 ответ

Документ << EOFздесь -создает контекст цитирования, аналогичный "...", в котором раскрываются переменные. У вас есть $2, который расширяется локальной оболочкой. (Апострофы ничего не заключают в кавычки, потому что они находятся внутри большей строки в кавычках (heredoc ), поэтому они не являются специальными символами. Вы не можете «повысить уровень цитирования», вложив '...'внутрь"...")

Ваша локальная оболочка, вероятно, не имеет параметра $2, поэтому она заменяется пустой строкой, а удаленная оболочка получает на стандартный ввод:

cat template|grep count|awk -F":" '{print }' > log

И awk print— вся строка.

Вы можете попросить оператора heredoc не расширять переменные, добавив апостроф -в кавычки к завершающей строке, например:

ssh... << 'EOF'
...
EOF

Если вы сделаете это с вашим примером, $2выдержит обработку heredoc и будет передан через ssh в удаленную оболочку.

Дополнительная подсказка:cat | grep | awkвдвойне расточительна, так как awkвсе это умеет. Ваша удаленная команда эквивалентна

awk -F":" '/count/ {print $2}' template > log
1
28.07.2021, 12:17

Теги

Похожие вопросы