Целые числа извлечения включаются в круглые скобки

Я предложил бы просто загрузить Eclipse с веб-сайта и разархивировать его в Вашей домашней папке. У меня были подобные конфликты в прошлом, и не использование пакетов от ОС в этом случае просто помогло мне.

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

2
24.11.2018, 22:26
3 ответа

GNU grep поддерживает -o опция, которая даст Вам шаблон соответствия, таким образом, Вы могли использовать grep -o '([0-9]\+)' но это также распечатает круглые скобки. Для большей гибкости и мобильности, тем не менее, необходимо выполнить последующую обработку с sed:

grep '([0-9]\+)$' movie.txt | sed 's/.*(\([0-9]\+\))$/\1/'
# assumes that the year is always at the end of the line.
3
27.01.2020, 21:53
  • 1
    Ну, grep будучи подмножеством sed, нет никакой потребности в grep здесь (также отмечают это \+ в sed не является портативным, ни стандартным). sed -n 's/.*(\([0-9]\{1,\}\)).*/\1/p'. Все, что они принимают, существуют только одно возникновение (xxx) на строку. –  Stéphane Chazelas 22.10.2012, 22:09
  • 2
    @sch, который у меня нет его передо мной для тестирования без grep, это отфильтрует строки, которые не соответствуют шаблону вообще? большой –  Random832 22.10.2012, 23:20
  • 3
    Да, -n не должен печатать строку по умолчанию, и p отметьте к s команда должна распечатать строку, когда замена успешна. –  Stéphane Chazelas 23.10.2012, 00:22
  • 4
    С GNU grep, можно использовать Perl regex синтаксис: grep -Po '(?<=\()[0-9]+(?=\))' но это точно не прокручивается от языка. –  Gilles 'SO- stop being evil' 23.10.2012, 01:12

Если числа всегда являются последним полем, то можно сделать это с единственной командой awk.

bash$ awk '{gsub(/\(|\)/," "); print $NF};' $file
2012
2008
...
2
27.01.2020, 21:53

С жемчугом:

perl -lne 'print for /\((\d+)\)/g'
2
27.01.2020, 21:53

Теги

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