Вопросы с тегом «sed»

245
Вставьте строку после первого совпадения, используя sed

По какой-то причине я не могу найти простой ответ на этот вопрос, и сейчас я немного переживаю. Как бы я вставил строку выбора после первой строки, соответствующей определенной строке, используяsed команду. У меня есть ... CLIENTSCRIPT="foo" CLIENTFILE="bar" И я хочу вставить строку после...

244
Найти и заменить на sed в каталоге и подкаталогах

Я запускаю эту команду, чтобы найти и заменить все вхождения «apple» на «orange» во всех файлах в корне моего сайта: find ./ -exec sed -i 's/apple/orange/g' {} \; Но это не проходит через подкаталоги. Что не так с этой командой? Вот некоторые строки вывода find ./: ./index.php ./header.php ./fpd...

237
Флаг sed in-place, который работает как на Mac (BSD), так и на Linux

Есть ли вызов sedредактирования «на месте» без резервного копирования, который работает как в Linux, так и в Mac? В то время как BSD, sedпоставляемый с OS X, кажется, нуждается sed -i '' …, sedдистрибутивы GNU Linux обычно поставляются с интерпретацией кавычек как пустое имя входного файла (вместо...

231
Как заменить несколько шаблонов одновременно с помощью sed?

Предположим, у меня есть строка 'abbc', и я хочу заменить: ab -> bc bc -> ab Если я попробую две замены, результат будет не тем, что я хочу: echo 'abbc' | sed 's/ab/bc/g;s/bc/ab/g' abab Так какую команду sed я могу использовать для замены, как показано ниже? echo abbc | sed SED_COMMAND bcab...

225
Сценарий оболочки - удалить первую и последнюю кавычку (") из переменной

Ниже приведен фрагмент сценария оболочки из более крупного сценария. Он удаляет кавычки из строки, содержащейся в переменной. Я делаю это с помощью sed, но эффективно ли это? Если нет, то каков эффективный путь? #!/bin/sh opt="\"html\\test\\\"" temp=`echo $opt | sed 's/.\(.*\)/\1/' | sed...

218
Как показать только следующую строку после совпавшей?

grep -A1 'blah' logfile Благодаря этой команде для каждой строки, содержащей «бла», я получаю вывод строки, содержащей «бла», и следующую строку в лог-файле. Это может быть простой, но я не могу найти способ пропустить строку, которая имеет «бла» и показать только следующую строку в...

217
Как использовать sed, чтобы заменить только первое вхождение в файле?

Я хотел бы обновить большое количество исходных файлов C ++ с помощью дополнительной директивы include перед любым существующим #include. Для такого рода задач я обычно использую небольшой скрипт bash с sed, чтобы переписать файл. Как мне sedзаменить только первое вхождение строки в файле, а не...

213
Как вставить текст в начале файла?

До сих пор я был в состоянии найти, как добавить строку в начале файла, но это не совсем то, что я хочу. Я покажу это на примере Содержание файла some text at the beginning результат <added text> some text at the beginning Это похоже, но я не хочу создавать новую линию с этим ... Я хотел бы...

210
Команда для получения n-й строки STDOUT

Есть ли какая-нибудь команда bash, которая позволит вам получить n-ю строку STDOUT? То есть что-то, что могло бы принять это $ ls -l -rw-r--r--@ 1 root wheel my.txt -rw-r--r--@ 1 root wheel files.txt -rw-r--r--@ 1 root wheel here.txt и делать что-то вроде $ ls -l | magic-command 2 -rw-r--r--@ 1...

202
Подстановка переменной среды в sed

Если я запускаю эти команды из скрипта: #my.sh PWD=bla sed 's/xxx/'$PWD'/' ... $ ./my.sh xxx bla это нормально. Но если я бегу: #my.sh sed 's/xxx/'$PWD'/' ... $ ./my.sh $ sed: -e expression #1, char 8: Unknown option to `s' Я прочитал в уроках, что для замены переменных окружения из оболочки вам...

194
Изменить несколько файлов

Следующая команда корректно изменяет содержимое 2 файлов. sed -i 's/abc/xyz/g' xaa1 xab1 Но мне нужно динамически изменить несколько таких файлов, а я не знаю их имен. Я хочу написать команду, которая будет читать все файлы из текущего каталога, начиная с, xa*и sedдолжна изменить содержимое...

187
недопустимый код команды., несмотря на экранирование, используя sed

Будучи вынужденным использовать CVS для текущего клиента, а адрес изменился для удаленного репо. Единственный способ найти удаленный адрес в моем локальном коде - это рекурсивный поиск и замена. Тем не менее, с командой sed я ожидал работать: find ./ -type f -exec sed -i...

184
Ошибка RE: недопустимая последовательность байтов в Mac OS X

Я пытаюсь заменить строку в Makefile на Mac OS X для кросс-компиляции на iOS. Строка имеет двойные кавычки. Команда: sed -i "" 's|"iphoneos-cross","llvm-gcc:-O3|"iphoneos-cross","clang:-Os|g' Configure И ошибка: sed: RE error: illegal byte sequence Я пытался избежать двойных кавычек, запятых, тире...

164
Получить последние 100 строк журналов

Мне нужно получить последние 100 строк журналов из файла журнала. Я попробовал команду sed sed -n -e '100,$p' logfilename Пожалуйста, дайте мне знать, как я могу изменить эту команду, чтобы специально получить последние 100...

162
Как я могу удалить новую строку, если это последний символ в файле?

У меня есть несколько файлов, которые я хотел бы удалить последним символом новой строки, если это последний символ в файле. od -cпоказывает, что команда, которую я запускаю, записывает файл с новой строкой: 0013600 n t > \n Я попробовал несколько трюков с sed, но лучшее, что я мог придумать,...

160
Как удалить строки, которые появляются в файле B, из другого файла A?

У меня есть большой файл A (состоящий из электронных писем), одна строка для каждого письма. У меня также есть другой файл B, который содержит другой набор писем. Какую команду я бы использовал, чтобы удалить все адреса, которые появляются в файле B, из файла A. Итак, если файл A содержал: A B C и...

158
Сбой sed с ошибкой «unknown option to s»

Я пытаюсь использовать sed -i -e "s/.*seb.*/ \"$ftp_login_template\"/" $ftp_dir однако я получаю эту ошибку: sed: -e expression #1, char 34: unknown option to `s' Я не понимаю, почему, так как это работает отлично: sed -i -e "s/.*wbspassword.*/ \"wbspassword\": \"$password\",/" $user_conf Есть...

157
Добавление строки в файл, только если он еще не существует

Мне нужно добавить следующую строку в конец файла конфигурации: include "/configs/projectname.conf" в файл с именем lighttpd.conf Я пытаюсь использовать sedэто, но не могу понять, как это сделать. Как бы я вставить его, если линия еще не...