Как передать параметр 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 

  • разделение файла в файле
  • Печать регулярного выражения Sed в файл .txt
  • Попытка grep url из источника html в .txt-файле с помощью sed
  • Извлечение данных с помощью awk, когда некоторые строки имеют пустые / отсутствующие значения
  • Как передать эти абзацы в формат MCQ?
  • Как я могу выполнить двоичный поиск текстового файла для определенной строки символов?
  • Игнорировать полные строки с помощью sed
  • Уменьшение числа с помощью sed
  • 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" } 
    Interesting Posts

    stdin: нет в tty

    Программный центр Ubunutu не работает, показывая черный экран

    tar + rsync + untar. Любое преимущество по скорости только за rsync?

    Почему Write выглядит приоритетным по сравнению с Read в файловой системе? (или наоборот)

    Загрузка образа необработанного диска в QEMU

    сравнивая первый столбец из двух файлов и печатая всю строку второго файла, если совпадают первые столбцы

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

    Программы не видят переменных окружающей среды

    Избегайте спрашивать пароль, если “ пользовательская команда su -m` используется под `user`?

    Чтение паролей без отображения на экране в сценариях Bash

    Замена всего `&`, но не единственного в XML-сущности `& amp;` с `#` с sed в заданном теге XML

    Насколько хороша поддержка ИБП на основе NUT для APC?

    Как настроить Mutt для gmail безопасно

    Как я могу легко настроить долю samba в Debian Wheezy?

    Как я могу определить вариант Unix / Linux из оболочки?

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