Как заменить awk аргументом?

К сожалению, я не могу дать полный ответ. Все, что я имею, является советом о некоторых возможных путях для блуждания.

Самый легкий маршрут был бы то, если emacs-g-client, что Gilles упомянул в версии SU этого вопроса работы. Если бы это не работает, я изучил бы следующее:

  • По крайней мере необходимо смочь получить некоторую календарную функциональность путем доступа к Google Календарю с помощью iCal. Функция icalendar-import-file может импортировать файл iCal в emacs файл дневника (icalendar-import-file документация). Таким образом в Вашем .emacs файле у Вас могло быть немного шепелявости emacs, чтобы получить файл iCal Google Календаря и импортировать его в Ваш дневник. Если Вы действительно заканчиваете тем, что использовали org-режим существует много способов интегрировать org-режим с режимом дневника.

  • Я думаю, что конечная цель должна была бы использовать gdata API. Я не думаю, что существует простой способ получить доступ к контактам Google за пределами этого API. Существует утилита командной строки, которая поддерживает широкий спектр функциональности с помощью этого API, названного Google CL, который мог теоретически использоваться в некоторых функциях шепелявости emacs для обеспечения полного доступа к контактам, календарю и многим другим размещенным Google сервисам. Это однако, вероятно, было бы намного более трудным, чем всего несколько строк, брошенных в Ваш .emacs.

2
27.09.2011, 02:54
3 ответа

Для передачи строки от сценария оболочки до встроенного awk сценария используйте awk переменную и -v аргумент.

myawk () {
  awk -v mystring="$1" '{ print mystring }'
}

Другая возможность состоит в том, чтобы поместить строку в переменную среды и получить доступ к ней через ENVIRON массив.

3
27.01.2020, 22:07

Попытайтесь использовать двойные кавычки вместо сингла. http://www.gnu.org/s/bash/manual/html_node/Double-Quotes.html

Или запись его этот путь:

myawk () { awk '{print '"$1"' }'; }

Но я вижу много плохих побочных эффектов с попыткой включать необработанные пользовательские строки. Например:

myawk '"hello"; system("echo there")"

Это оценить как awk '{print "hello"; system("echo there") }', который может отобразиться "привет" и "там; но более злонамеренные команды могли быть отправлены если не оставленные правильно.

1
27.01.2020, 22:07

Что относительно добавления alias awk="awk '{print $1 }'" в Ваш .bashrc файл?

-1
27.01.2020, 22:07

Теги

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