Как передать параметр sed?

Если быть более точным – как передать параметр в программу, которая затем вызывает sed – как я могу передать этот параметр?

У меня есть файл 'source_code.sc'.
У меня есть сценарий sed «find_expect»:

#n /expect/{ = p } 

что я вызываю изнутри программы, которая перебирает файлы с помощью

 sed -f find_expect.= source_code.sc 

что печать находит с номерами строк, например

 712 expect(it).to be_true 

Однако этот поиск жестко запрограммирован для поиска «ожидать». Как я могу изменить это, чтобы сам текст поиска также передавался. Я также перебираю файлы с помощью find, поэтому sed в настоящее время вызывается для многих файлов. Например, чтобы искать «blob», программа, циклически перемещающая файлы, будет ссылаться на нее

 sed -f find_expect.= "$file_from_loop" source_code.sc 'blob' # with 'blob' being passed in from the main script # which would be invoked with `./change_all.sh 'blob' # I don't pass the file pattern in to this main call as I just # recursively do all files (that match a pattern) from the current directory down 

One Solution collect form web for “Как передать параметр sed?”

Похоже, вы пытаетесь переустановить grep . Вместо sed просто используйте:

 grep -n -- "$var" file 

Если var содержит метасимволы регулярных выражений, которые вы хотите сопоставить буквально, -F параметр -F в grep :

 grep -nF -- "$var" file 

где var содержит желаемый шаблон.

На странице man grep(1) :

-n, –line-number
Префикс каждой строки вывода с номером строки 1 в его входном файле. (-n указан POSIX.)

Если вы настаиваете на использовании sed , вы можете сделать функцию для этой цели:

 notgrep (){ if [ $# -ne 2 ];then echo "Usage: notgrep <pattern> <file>" exit 1 end sed -n "/$1/{ = p }" "$2" } 
  • Как удалить символы текста в одной строке перед конкретным символом?
  • Использование sed для цветного вывода из команды на Solaris
  • Как удалить все комментарии из файла?
  • Что означает <<<?
  • Условный awk через 4 столбца
  • sed regex для группы захвата между разделителями
  • Найдите каждую строку, соответствующую шаблону, но напечатайте только строку над ней
  • Вывести только определенные поля
  • Извлечение частей имени файла csv в столбцах
  • Найти файлы, для которых несколько вариантов этого имени файла существуют вместе в одном каталоге
  • извлечь url между 2 строками в файле
  • Как отобразить имя дистрибутива (только) из lsb_release -i
  • Interesting Posts

    Передача списка URL-адресов, содержащихся в файле, для завивки

    Как установить ОС Microsoft Windows, если у вас уже установлен Ubuntu 12.04

    По-видимому, Swap не используется

    Функциональные клавиши больше не доступны для переключения рабочих областей

    Почему «kill -9» убивает браузер, а также сервер?

    Почему ядро ​​не наследует информацию о файловой системе от GRUB?

    Как узнать недавно обновленные файлы

    root может войти только в режиме ограничения доступа

    Линейная командная строка Linux, которая выйдет из строя, если будет произведен какой-либо стандарт

    После потери соединения ssh с полем с запуском tmux оболочка искажается

    Свойство командной строки CLI Linux 2.0

    Я не могу войти как root с командой su, но я могу с SSH

    Почему добавление тестового репозитория Debian создало так много зависимостей пакетов?

    копировать массив с именем массива внутри строки в bash

    Fedora 21 больше не загружается; Компьютер хочет, чтобы я исполнял руководство МОК

    Linux и Unix - лучшая ОС в мире.