grep изменение строки, за которой следует переменная

У меня есть файл следующего вида (с '-', служащим разделителями), и я хочу найти появление числа только тогда, когда оно следует за разделителем. Я полагаю, что это конкатенация grep '- \ n' и $ number, но я не могу найти способ сделать это правильно. благодаря..

1400 2 132 342 - 76567 1 1234 - 87 2 1400 54 - 

5 Solutions collect form web for “grep изменение строки, за которой следует переменная”

Чтобы найти переменную перед разделителем:

Использование awk :

 $ awk '/!!!!!!!!!!!/{print num}{num=$0}' inputFile 342 1234 54 

или gnu-awk :

 $ gawk 'NF && $0=$NF' RS='[!]+' inputFile 342 1234 54 

Чтобы найти переменную после разделителя:

Использование awk :

 $ awk '/!!!!!!!!!!!/{if(getline) print $0}' inputFile 76567 87 

или gnu-awk :

 $ gawk 'NR>1 && $0=$1' RS='[!]+' inputFile 76567 87 

Следующая команда

 grep '!!' -A 1 file|grep -vE '!!|\-\-' 

будет давать

 76567 87 

grep имеет переключатель -A который сообщает ему распечатать несколько строк после матча. В этом случае просто используйте -A 1 и вы получите ouptut like

 !!!!!!!!!!! 76567 -- !!!!!!!!!!! 87 -- !!!!!!!!!!! 

Теперь просто вычеркните цифры с | grep -e '[0-9]' | grep -e '[0-9]' .

используя AWK

Чтобы найти переменную перед разделителем:

 awk '{ print $NF }' RS='!!!!!!!!!!!' infile 

Вывод

 342 1234 54 

Чтобы найти переменную после разделителя:

 awk 'NR>1{ print $1 }' RS='!!!!!!!!!!!' infile 

Вывод

 76567 87 

Это число перед разделителем:

 sed -n '/[^0-9]/!h;/^-$/{g;/./p}' 

И это после:

 sed -n '/^-$/{n;/./!d;/[^0-9]/!p}' 
  • Извлечь абзац, разделенный на *** с помощью AWK
  • Печать содержимого файла с помощью grep
  • что означает grep -v -f / dev / null, что нужно сделать точно?
  • Найдите файл, содержащий определенное ключевое слово, используя `grep`
  • поиск нескольких строк в нескольких файлах внутри каталога и печать строки и соответствующего имени файла, где она была найдена
  • Как grep для текста в файле и отображать абзац с текстом?
  • grep инвертированное соответствие по строке, удовлетворяющей шаблону
  • Помощь с помощью команды find
  • Как удалить все комментарии из файла?
  • Найдите слова с тем же гласным, разделенным согласным
  • Как подсчитать количество строк для определенного типа файла в сжатом файле tgz?
  • Уникальная идентификация Java-процессов с тем же именем
  • Linux и Unix - лучшая ОС в мире.