Я пытаюсь grep слово в файле .txt внутри «<» и «>» в течение двух дней, но невозможно получить его. Например, я имею что-то подобное в file.txt:Получить текст внутри «<" and ">» с grep в партии
30993250 (<[email protected]> 2014-09-22 12:41:56 +0200 365)
Родом из git blame -L 365,+1 path\to\file.cpp-e
и я хочу, чтобы только восстановить электронную почту внутри. Я пытаюсь это следующий код:
grep -oP '(?<=\<)\w+(?= \>)' ..\log\file.txt > ..\log\result.txt
и
grep -Po '(?<=\().*(?=\))' ..\log\file.txt > ..\log\result.txt
Но это не работает, и говорит, что синтаксис файла неправильно или указанный путь не найден , Я не понимаю, я пробовал много комбинаций, но ничего не работает ...
Я хочу сказать, что я использую пакет под Windows. Есть ли кто-нибудь, кто может мне помочь?
EDIT: Я нашел решение, в котором я использую таблицу ASCII так:
grep -oP '["\074].*["\076]' ..\log\file.txt > ..\log\result.txt
Но отображения "<>" символы, как это:
Как я могу удалить это?
Благодаря
Этот символ довольно близок 'grep -o '<[^>] \ +''. У вас есть awk ?, тогда вы можете использовать 'awk -F '[><]' '{print $ 2}'' –
Использование sed: 'sed 's/^ [^ <]\+<\([^>] \ + \). * $/\ 1/'' –
@FredrikPihl Спасибо за ответ. Я попробовал awk (gawk for me on windows ...) и sed, но он никогда не работает :(Я редактирую свой пост, потому что нашел начало решения. – Algorys