Как усечь длинные согласующие отрезки длинной линии, возвращенные grep или ack

Я решил что-то вроде создания расчетных полей для текущего месяца и прошлого месяца, а также расчетного поля для роста.

Первое вычисляемое поле 'Current_Month'

IF [MONTH] = 'dec' then [number of record] END

или (в зависимости от ваших настроек данных)

IF [MONTH] = 'current' then [number of record] END

Следующее вычисляемое поле для «Last_Month»

IF [MONTH] = 'nov' then [number of record] END

или (в зависимости от ваших настроек данных)

IF [MONTH] = 'last' then [number of record] END

Затем вычисляется поле для разности

[114 ]
74
задан Benjamin W. 27 July 2017 в 01:43
поделиться

4 ответа

Можно использовать grep-опцию -o, возможно в сочетании с изменением шаблона на ".{0,10}<оригинальный шаблон>. {0,10}", чтобы увидеть вокруг себя некий контекст:

       -o, --only-matching
              Show only the part of a matching line that matches PATTERN.

...или -c:

       -c, --count
              Suppress normal output; instead print a count of matching  lines
              for  each  input  file.  With the -v, --invert-match option (see
              below), count non-matching lines.
82
ответ дан 24 November 2019 в 11:57
поделиться

Я поместил следующее в мой .bashrc:

grepl() {
    $(which grep) --color=always $@ | less -RS
}

можно затем использовать grepl на командной строке с любыми аргументами, которые доступны для grep. Используйте клавиши со стрелками для наблюдения хвоста более длинных строк. Используйте q для выхода.

Объяснение:

  • grepl() {: Определите новую функцию, которая будет доступна в каждой (новой) консоли удара.
  • $(which grep): Получите полный путь grep. (Ubuntu определяет псевдоним для grep, который эквивалентен grep --color=auto. Мы не хотим тот псевдоним, но оригинал grep.)
  • --color=always: Colorize вывод. (--color=auto от псевдонима не будет работать, с тех пор grep обнаруживает, что вывод помещается в канал и не окрасит его затем.)
  • $@: Поместите все аргументы, данные эти grepl функция здесь.
  • less: Отобразите строки с помощью [1 117]
  • -R: Покажите цвета
  • S: не повреждайте длинные линии
0
ответ дан 24 November 2019 в 11:57
поделиться

Вот то, что я делаю:

function grep () {
  tput rmam;
  command grep "$@";
  tput smam;
}

В моем .bash_profile, я переопределение grep так, чтобы это автоматически работало tput rmam прежде и tput smam после, который отключил обертывание и затем повторно включает его.

0
ответ дан 24 November 2019 в 11:57
поделиться

Труба вашим результатам через Cut . Я также рассматриваю возможность добавления - вырезать переключатель, чтобы вы могли сказать - CUT = 80 и получить только 80 столбцов.

39
ответ дан 24 November 2019 в 11:57
поделиться
Другие вопросы по тегам:

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