grep файл, но показать несколько окружающих строк?

Это сообщение было в течение 4 лет, и я все еще боролся с этой проблемой конверсии - так что проблема по-прежнему активна в 2017 году в некотором смысле. Я был несколько шокирован тем, что документация numpy не дает простого алгоритма преобразования, но это уже другая история.

Я столкнулся с другим способом преобразования, который включает только модули numpy и datetime, он не требует импортировать панды, которые, как мне кажется, содержат много кода для импорта для такого простого преобразования. Я заметил, что datetime64.astype(datetime.datetime) вернет объект datetime.datetime, если исходный datetime64 находится в микросекундах, в то время как другие единицы возвращают целую метку времени. Я использую модуль xarray для ввода / вывода данных из файлов Netcdf, который использует datetime64 в наносекундах, что делает переход неудачным, если вы не впервые конвертируете в микросекунды. Вот пример кода преобразования,

import numpy as np
import datetime

def convert_datetime64_to_datetime( usert: np.datetime64 )->datetime.datetime:
    t = np.datetime64( usert, 'us').astype(datetime.datetime)
return t

. Его единственный протестированный на моей машине, который представляет собой Python 3.6 с недавним дистрибутивом Anaconda 2017 года. Я только посмотрел на скалярное преобразование и не проверил преобразования на основе массива, хотя я предполагаю, что это будет хорошо. Я также не смотрел исходный код numpy datetime64, чтобы убедиться, что операция имеет смысл или нет.

3190
задан alexyorke 31 May 2017 в 02:44
поделиться

5 ответов

Для BSD или GNU grep можно использовать -B num для установки сколько строк перед соответствием и -A num для количества строк после соответствия.

grep -B 3 -A 2 foo README.txt

, Если Вы хотите то же количество строк прежде и после того, как можно будет использовать -C num.

grep -C 3 foo README.txt

Это покажет 3 строки прежде и 3 строки после.

4256
ответ дан Vladyslav 31 May 2017 в 02:44
поделиться

Я обычно использую

grep searchstring file -C n # n for number of lines of context up and down

, Многие инструменты как grep также имеют файлы действительно великого человека также. Я отношусь к страница справочника grep много, потому что существует так, можно сделать с нею.

man grep

инструменты Many GNU также имеют информационная страница , которая может иметь более полезную информацию в дополнение к странице справочника.

info grep
18
ответ дан Sam Merrell 31 May 2017 в 02:44
поделиться

-A и -B будет работать, как будет -C n (для n строки контекста), или всего -n (для n строки контекста..., целый n равняется 1 - 9).

586
ответ дан Trevor Boyd Smith 31 May 2017 в 02:44
поделиться

ack работает с подобными аргументами как grep и принимает -C. Но это обычно лучше для поиска кода.

73
ответ дан Andy Lester 31 May 2017 в 02:44
поделиться
  • 1
    Можно также выполнить сценарии через npm путем добавления " scripts" возразите против своего package.json и выполнения, " $ npm сценарий выполнения scriptname". NPM добавляет различные каталоги bin в локальном пакете repo к пути прежде, чем выполнить сценарий: – Edward M Smith 24 May 2011 в 11:48
grep astring myfile -A 5 -B 5

, Который будет grep "myfile" для "astring", и показывать 5 строк прежде и после каждого соответствия

35
ответ дан dbr 31 May 2017 в 02:44
поделиться
  • 1
    +1 для добавления объекта сценариев к package.json и использованию npm run-script scriptname - это держит глобальное пространство в стороне и позволяет Вам более точно тестировать свою продуктивную среду когда в dev. – Gilman 10 May 2013 в 17:44
Другие вопросы по тегам:

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