The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Полезные одно-строчные скрипты sed (sed shell)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: sed, shell,  (найти похожие документы)
Автор: Тарасов Антон aka Ant0 <mailbox@ant0.ru> Date: Mon, 20 Oct 2006 14:31:37 +0000 (UTC) Subject: Полезные одно-строчные скрипты sed Оригинал: http://ant0.ru/sed1line.html Версия 5.5 от 29 Дек. 2005 Составлено: Eric Pement (pemente@northpark.edu) Переведено: Anton Tarasov aka Ant0 (mailbox@ant0.ru) Последняя версия этого файла (на Английском) доступна: * http://sed.sourceforge.net/sed1line.txt * http://www.pement.org/sed/sed1line.txt Пространство между строками: Двойное пространство между строками: sed G Двойное пространство между строками исключая пустые строки (на выходе содержаться не больше одной пустой строки между двумя строками с текстом): sed '/^$/d;G' Тройное пространство между строками: sed 'G;G' Удалить каждую вторую строку: sed 'n;d' Вставить пустую строку перед каждой строкой соответствующей регулярному выражению "regex": sed '/regex/{x;p;x;}' Вставить пустую строку после каждой строки соответствующей регулярному выражению "regex": sed '/regex/G' Вставить пустую строку перед и после каждой строки соответствующей регулярному выражению "regex": sed '/regex/{x;p;x;G;}' Нумерация: Нумерация каждой строки в файле filename. Используя отступ (tab) (смотрите примечание по '\t' в конце документа) вместо пустой строки: sed = filename | sed 'N;s/\n/\t/' Нумерация каждой строки в файле filename (номер слева, выравненый по правому краю): sed = filename | sed 'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /' Нумерация каждой строки в файле filename, с выводом номера только для не пустых строк: sed '/./=' filename | sed '/./N; s/\n/ /' Подсчет строк (эмуляция "wc -l"): sed -n '$=' Преобразование и замена текста: В UNIX окружении: преобразование окончания строк из формата DOS (CR/LF) в формат Unix (LF): sed 's/.$//' (подразумеваеться что все строки заканчиваються с CR/LF) sed 's/^M$//' (в bash/tcsh, нажмите Ctrl-V затем Ctrl-M) sed 's/\x0D$//' (работает в ssed, gsed 3.02.80 или выше) В UNIX окружении: преобразование разрыва строк Unix (LF) в формат DOS: sed "s/$/`echo -e \\\r`/" (комманда в ksh) sed 's/$'"/`echo \\\r`/" (комманда под bash) sed "s/$/`echo \\\r`/" (комманда под zsh) sed 's/$/\r/' (комманда под gsed 3.02.80 или выше) В DOS окружении: преобразование разрыва строк Unix (LF) в формат DOS: Версия 1: sed "s/$//" Версия 2: sed -n p В DOS окружении: преобразование разрыва строк DOS (CR/LF) в формат Unix. Can only be done with UnxUtils sed, version 4.0.7 or higher. The UnxUtils version can be identified by the custom "--text" switch which appears when you use the "--help" switch. Otherwise, changing DOS newlines to Unix newlines cannot be done with sed in a DOS environment. Use "tr" instead.: sed "s/\r//" infile >outfile (UnxUtils sed v4.0.7 или выше) tr -d \r <infile >outfile (GNU tr версии 1.22 или выше) Удалить все пробелы и символы табуляции в начале каждой строки файла (смотрите примечание по табуляции в конце документа): sed 's/^[ \t]*//' Удалить все пробелы и символы табуляции в конце каждой строки файла (смотрите примечание по табуляции в конце документа): sed 's/[ \t]*$//' Удалить все пробелы и символы табуляции в начале и конце каждой строки файла (смотрите примечание по табуляции в конце документа): sed 's/^[ \t]*//;s/[ \t]*$//' Вставить 5 пробелов в начале каждой строки (создать смещение страницы): sed 's/^/ /' Расположить весь текст по правому краю столбца шириной в 79 символов: sed -e :a -e 's/^.\{1,78\}$/ &/;ta' (устанавливает как 78 плюс 1 пробельный символ) Центрировать весь текст посередине столбца шириной 79 символов. В версии 1, пробелы добовляються в начало и конец строки. В версии 2, пробелы добовляються только в начало строки: sed -e :a -e 's/^.\{1,77\}$/ & /;ta' или sed -e :a -e 's/^.\{1,77\}$/ &/;ta' -e 's/\( *\)\1/\1/' Поиск и замеа "foo" на "bar" в каждой строке: sed 's/foo/bar/' (замена только первого совпадения в строке) sed 's/foo/bar/4' (замена первых 4рех совпадений в строке) sed 's/foo/bar/g' (замена ВСЕХ совпадений в строке) sed 's/\(.*\)foo\(.*foo\)/\1bar\2/' (замена предпоследнего совпадения) sed 's/\(.*\)foo/\1bar/' (замена только последнего совпадения) Замена "foo" на "bar" ТОЛЬКО для строк содержащих "baz": sed '/baz/s/foo/bar/g' Замена "foo" на "bar" ИСКЛЮЧАЯ строки содержащие "baz": sed '/baz/!s/foo/bar/g' Замена "scarlet" или "ruby", или "puce" на "red": sed 's/scarlet/red/g;s/ruby/red/g;s/puce/red/g' (большинство sed-ов) gsed 's/scarlet\|ruby\|puce/red/g' (только GNU sed) Перевернуть последовательность строк (эмуляция "tac") (ошибка/особеннось в HHsed v1.5 причина удалению пустой строки): sed '1!G;h;$!d' или sed -n '1!G;h;$p' Перевернуть каждую строку в файле задом наперед (эмуляция "rev"): sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' Соеденить каждую пару строк бок о бок (подобно "paste"): sed '$!N;s/\n/ /' Если линия заканчиваеться обратной косой чертой "\", то присоеденить следующую линию: sed -e :a -e '/\\$/N; s/\\\n//; ta' Если линия начинаеться с знака "=", то присоеденить ее к предыдущей линии и заменить "=" пробелом: sed -e :a -e '$!N;s/\n=/ /;ta' -e 'P;D' Добавить запятые к строке из чисел, изменяя "1234567" на "1,234,567": gsed ':a;s/\B[0-9]\{3\}\>/,&/;ta' (GNU sed) sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta' (другие sed-ы) Добавить запятые к числу с десятичной частью и знаком минуса (GNU sed): gsed -r ':a;s/(^|[^0-9.])([0-9]+)([0-9]{3})/\1\2,\3/g;ta' Добавить пустую строку через каждые 5 строк (после строк 5, 10, 15, 20, и т.д.): gsed '0~5G' (только GNU sed) sed 'n;n;n;n;G;' (другие sed-ы) Выборочная печать некоторых строк: Печатать первые 10 линий файла (эмуляция "head"): sed 10q Печатать первую строку файла (эмуляция "head -1"): sed q Печатать последние 10 строк файла (эмуляция "tail"): sed -e :a -e '$q;N;11,$D;ba' Печатать последние 2 строки файла (эмуляция "tail -2"): sed '$!N;$!D' Печатать последнюю строку файла (эмуляция "tail -1"): sed '$!d' или sed -n '$p' Печатать предпоследнюю строку в файле: sed -e '$!{h;d;}' -e x (для однострочного файла печатать пустую строку) sed -e '1{$q;}' -e '$!{h;d;}' -e x (для однострочного файла печатать эту строку) sed -e '1{$d;}' -e '$!{h;d;}' -e x (для однострочного файла ничего не печатать) Печатать только те строки, которые совпадают с регулярным выражением (эмуляция "grep"): sed -n '/regexp/p' или sed '/regexp/!d' Печатать только те строки, которые НЕ совпадают с регулярным выражением (эмуляция "grep -v"): sed -n '/regexp/!p' - Версия 1, corresponds to above sed '/regexp/d' - Версия 2, simpler syntax Печатать строку непосредственно перед регулярным выражением, но не печатать строку содержащую регулярное выражение: sed -n '/regexp/{g;1!p;};h' Печатать строку непосредственно после регулярного выражения, но не печатать строку содержащую регулярное выражение: sed -n '/regexp/{n;p;}' Печатать по одной строке перед и после регулярного выражения, с указанием номера строки совпадающей с регулярным выражением (симуляция "grep -A1 -B1"): sed -n -e '/regexp/{=;x;1!p;g;$!N;p;D;}' -e h Печать строк, совпадающих с регулярными выражениями AAA, BBB и CCC одновременно (в любой последовательности): sed '/AAA/!d; /BBB/!d; /CCC/!d' Печать строк, совпадающих с регулярными выражениями AAA, BBB и CCC одновременно (в конкретной последовательности): sed '/AAA.*BBB.*CCC/!d' Печать строк, совпадающих с любым регулярным выражением AAA или BBB, или CCC (эмуляция "egrep"): sed -e '/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d (большинство sed'ов) gsed '/AAA\|BBB\|CCC/!d' (только GNU sed) Печатать абзац если он содержит AAA (пустая строка разделяет абзацы) (в HHsed v1.5 необходимо вставить 'G;' после 'x;'): sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;' Печатать абзац если он содержит AAA, BBB и CCC (в любой последовательности) (в HHsed v1.5 необходимо вставить 'G;' после 'x;'): sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;/BBB/!d;/CCC/!d' Печатать абзац если он содержит AAA или BBB, или CCC (в HHsed v1.5 необходимо вставить 'G;' после 'x;'): sed -e '/./{H;$!d;}' -e 'x;/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d gsed '/./{H;$!d;};x;/AAA\|BBB\|CCC/b;d' (только GNU sed) Печатать строки длиной равной или большей 65 символов: sed -n '/^.\{65\}/p' Печатать строки длиной меньше или равной 65 символов: sed -n '/^.\{65\}/!p' - Версия 1, отвечает условию sed '/^.\{65\}/d' - Версия 2, более простой синтаксис Печатать часть файла начиная от совпадения с регулярным выражением и до конца файла: sed -n '/regexp/,$p' Печатать часть файла основываясь на номерах строк (строки 8-12, включительно): sed -n '8,12p' или sed '8,12!d' Печатать строку под номером 52: sed -n '52p' - Версия 1 sed '52!d' - Версия 2 sed '52q;d' - Версия 3, эффективен на больших файлах Начиная с 3ей строки печатать каждую седьмую строку в файле: gsed -n '3~7p' (только GNU sed) sed -n '3,${p;n;n;n;n;n;n;}' (другие sed-ы) Печатать часть файла между двумя регулярными выражениями (включительно): sed -n '/Iowa/,/Montana/p' (регистро зависимый) Изберательное удаление определенных строк: Печатать все линии ИСКЛЮЧАЯ часть между двумя регулярными выражениями: sed '/Iowa/,/Montana/d' Удалить дубликаты последовательных строк в файле (эмуляция "uniq"). Первая строка в наборе дубликатах строк удерживаеться от удаления: sed '$!N; /^\(.*\)\n\1$/!P; D' Удалить дубликаты непоследовательных строк в файле. Остерегайтесь переполнения буфера или используйте GNU sed: (Beware not to overflow the buffer size of the hold space) sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P' Печатать только дубликаты строк (эмуляция "uniq -d").: sed '$!N; s/^\(.*\)\n\1$/\1/; t; D' Удалить первые 10 строк в файле: sed '1,10d' Удалить последнюю строку в файле: sed '$d' Удалить 2 последние строки файла: sed 'N;$!P;$!D;$d' Удалить последние 10 строк файла: sed -e :a -e '$d;N;2,10ba' -e 'P;D' или sed -n -e :a -e '1,10!{P;N;D;};N;ba' Удалить каждую восьмую строку в файле: gsed '0~8d' (только GNU sed) sed 'n;n;n;n;n;n;n;d;' (другие sed-ы) Удалить строки совпадающие с регулярным выражением: sed '/pattern/d' Удалить ВСЕ пустрые строки из файла (эмуляция "grep '.' "): sed '/^$/d' или sed '/./!d' Удалить все последовательности пустых строк из файла исключая первую. Также удалить все пустые строки в начале и в конце файла (эмуляция "cat -s"): sed '/./,/^$/!d' (Версия 1, допускаеться 0 пустых строк в начале и 1 в конце файла) sed '/^$/N;/\n$/D' (Версия 2, допускаеться 1 пустая строка в начале и 0 в конце файла) Оставить последовательность пустых строк не более двух одновременно: sed '/^$/N;/\n$/N;//D' Удалить все пустые строки в начале файла: sed '/./,$!d' Удалить все пустые строки в конце файла: sed -e :a -e '/^\n*$/{$d;N;ba' -e '}' (для всех sed-ов) sed -e :a -e '/^\n*$/N;/\n$/ba' (для всех, кроме gsed 3.02.*) Удалить последнюю непустую строку в каждом абзаце: sed -n '/^$/{p;h;};/./{x;/./p;}' Специальные приложения: Удалить конкретный символ (к примеру: символ возврата) из man страницы. Для использования комманда 'echo' может потребоваться указать параметр -e (если вы используете Unix System V или оболочку bash): sed "s/.`echo \\\b`//g" (двойные кавычки необходимы в Unix окружении) sed 's/.^H//g' (в bash/tcsh, нажмите Ctrl-V и затем Ctrl-H) sed 's/.\x08//g' (hex выражение для sed 1.5, GNU sed, ssed) Получить заголовок Usenet/e-mail сообщения: sed '/^$/q' (удаляет все после первой пустой строки) Получить тело Usenet/e-mail сообщений: sed '1,/^$/d' (удаляет все до первой пустой строки) Получить заголовок Subject (тема Usenet/e-mail сообщения), без удаления части "Subject: ": sed '/^Subject: */!d; s///;q' Получить заголовок обратный адрес: sed '/^Reply-To:/q; /^From:/h; /./d;g;q' Анализировать правильный исходящий адрес. # Pulls out the e-mail address by itself from the 1-line return address header (see preceding script): sed 's/ *(.*)//; s/>.*//; s/.*[:<] *//' Добавить скобку и пробел в начало каждой строки (цитирование сообщения): sed 's/^/> /' Удалить скобку и пробел в начале каждой строки (unquote a message): sed 's/^> //' Удалить большинство HTML тегов (включая теги состоящие из несколько строк): sed -e :a -e 's/<[^>]*>//g;/</N;//ba' Извлечение закодированных (uuencoded) двоичных данных из нескольких частей, удаление внешней заголовочной информации. Итак это только часть закодированного остатка. Файлы пропущенные через sed должны быть пропущены в правильной последовательности. Версия 1 может быть введена из коммандной строки, версия 2 может быть встроена в исполняемый скрипт оболочки Unix. (Модифицированна из скрипта Rahul Dhesi): sed '/^end/,/^begin/d' file1 file2 ... fileX | uudecode или sed '/^end/,/^begin/d' "$@" | uudecode Отсортировать абзацы файла в алфавитном порядке. Абзацы разделены пустой строкой. GNU sed использует \v для вертикального выравнивания, или это может быть любой уникальный символ: sed '/./{H;d;};x;s/\n/={NL}=/g' file | sort | sed '1s/={NL}=//;s/={NL}=/\n/g' gsed '/./{H;d};x;y/\n/\v/' file | sort | sed '1s/\v//;y/\v/\n/' zip up each .TXT file individually, deleting the source file and setting the name of each .ZIP file to the basename of the .TXT file (under DOS: the "dir /b" switch returns bare filenames in all caps).: echo @echo off >zipup.bat dir /b *.txt | sed "s/^\(.*\)\.TXT/pkzip -mo \1 \1.TXT/" >> zipup.bat Типичное использование: sed берет один или более комманд редактирования и в результате примеяет их все к каждой входящей строке. После этого все комманды будут применены к первой входящей строке, эта строка выводится, а следующая входящая строка береться для обработки и цикл повтаряется. Предшествующий пример предполагает что данные поступают с устройства стандартного ввода (например, консоль - нормальный канал ввода). Один или больше имен файлом могут быть присоеденены к командной строке если вход идет не из stdin. Вывод отсылаеться на стандартный вывод (stdout) (экран). Так: cat filename | sed '10q' (используеться ввод из конвеера) sed '10q' filename (тот же эффекс, исключая использование "cat") sed '10q' filename > newfile (перенаправление вывода на диск) Для дополнительных синтаксических инструкций, включая метод применения комманд редактирования из файла взамен коммандной строки, посмотрите книги Dale Dougherty и Arnold Robbins "sed & awk, 2nd Edition," (O'Reilly, 1997; http://www.ora.com), "UNIX Text Processing," by Dale Dougherty и Tim O'Reilly (Hayden Books, 1987) или учебники Mike Arst distributed in U-SEDIT2.ZIP (many sites). Для использование всех возможностей sed-а вы должны понимать "регулярные выражения". Для этого смотрите "Mastering Regular Expressions" by Jeffrey Friedl (O'Reilly, 1997). Могут пригодиться страницы руководства ("man") в системе Unix (Используйте "man sed", "man regexp", или раздел по регулярным выраженям в "man sed"), но страницы руководства, как правило, трудны. Они не написаны для обучения пользователей использования sed-а или регулярных выражений с нуля, а написаны как справочник для тех кто уже умеет работать с этими инструментами. Цитирование правил (Quoting syntax): Предшествующий пример использует одинарные кавычки ('...') вместо двойных кавычек ("...") для окружения редактируемой комманды, с тех пор (затем?) sed типично исользуется на платформах Unix. Одинарные кавычки предотращают оболочку Unix от интерпретации знака доллара ($) и обратных кавычек (`...`), которые расширяют оболочку если они заключены в двойные кавычки. Пользователи "csh" shell и просиходящие от нее также нуждаються в взятие в кавычки знака восклицания (!) c обратной косой чертой (i.e., \!) правильно запускает пример указанные выше, даже внутри одинарных кавычек. Версии sed написанные для DOS обязательно требуют заключение редактируемых комманд в двойные кавычеки ("...") взамен одинарных. Исользование '\t' в скриптах SED: Для ясности документации, мы можем использовать выражение '\t' для обозначения символа табуляции (0x09) в скриптах. Однако большинство версий sed-а не понимают сокращение '\t', чтобы ввести этот символ из коммандной строки, введите его клавишей TAB. '\t' поддерживаеться как метасимвол регулярнго выражения в awk, perl, HHsed, sedmod, и GNU sed v3.02.80. Версии sed: Версии sed-а различны, и предоплогают некоторые незначителные синтаксические перемены. В специфически, большинство не поддерживает variation is to be expected. In particular, most do not support the использования меток (:name) или ветвление инструкций (b,t) внутри комманды редактирования, исключая use of labels (:name) or branch instructions (b,t) within editing конец этих комманд. Мы можете использовать синтаксис commands, except at the end of those commands. We have used the syntax которые будет переносим у большинства пользователей sed-а, даже несмотря на популярность which will be portable to most users of sed, even though the popular GNU версии sed-а позволяющего более краткий синтаксис. Когда читатель смотрит GNU versions of sed allow a more succinct syntax. When the reader sees ясную длинную комманду такую как эту: a fairly long command such as this: sed -e '/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d это подбадривает к изученю it is heartening to know that GNU sed will let you reduce it to: sed '/AAA/b;/BBB/b;/CCC/b;d' (or even) sed '/AAA\|BBB\|CCC/b;d' In addition, remember that while many versions of sed accept a command like "/one/ s/RE1/RE2/", some do NOT allow "/one/! s/RE1/RE2/", which contains space before the 's'. Omit the space when typing the command. OPTIMIZING FOR SPEED: If execution speed needs to be increased (due to large input files or slow processors or hard disks), substitution will be executed more quickly if the "find" expression is specified before giving the "s/.../.../" instruction. Thus: sed 's/foo/bar/g' filename (standard replace command) sed '/foo/ s/foo/bar/g' filename (executes more quickly) sed '/foo/ s//bar/g' filename (shorthand sed syntax) On line selection or deletion in which you only need to output lines from the first part of the file, a "quit" command (q) in the script will drastically reduce processing time for large files. Thus: sed -n '45,50p' filename (print line nos. 45-50 of a file) sed -n '51q;45,50p' filename (same, but executes much faster) Если Вы хотите добавить свой скрипт или нашли ошибку в этом документе, пожалуйста отправьте e-mail составителю. Также укажите составителю используемую Вами версию sed-а, операционную систему составителю и обозначьте проблему. Чтобы охарактеризовать скрипт как одно-строковый, комманда должна содержать не больше 65 символов. Разнообразные скрипты в этом документе были написаны (или содействовали): Al Aab - founder of "seders" list Edgar Allen - various Yiorgos Adamopoulos - various Dale Dougherty - author of "sed & awk" Carlos Duarte - author of "do it with sed" Eric Pement - author of this document Ken Pizzini - author of GNU sed v3.02 S.G. Ravenhall - great de-html script Greg Ubben - many contributions & much help

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, xdsl (?), 11:45, 03/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Дюже полезно оказалось, жаль, что не видел раньше
     
  • 1.2, Бажов Вадим (?), 14:00, 04/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Прикольно. А есть такое же для AWK?
     
  • 1.3, Аноним (3), 19:50, 11/12/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    супер
     
  • 1.4, kukulkan (??), 00:35, 29/06/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Архиполезно. Автора премного благодарю.
     
  • 1.5, Alex (??), 15:58, 19/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автору огромнейшее спасибо за статью.
     
  • 1.6, Krieger (??), 20:20, 21/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    s/^/ /; s/  *\([^ "]*\("[^"]*"\)\{0,1\}\)/ \1/g; s/^ //

    Превращает последовательности пробелов в единичный пробел, исключая из обработки области, обрамлённые двойными кавычками (строки в языках программирования).

     
  • 1.7, Krieger (??), 20:23, 21/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И вообще на IRC-сервере FreeNode есть канал #sed, где сидит полно маньяков, готовых сочинить любой умопомрачительный скрипт :)
     
  • 1.9, Евгений (??), 12:07, 01/11/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как с помощью Седа распечатать слово (а не целую строку) соответствующее регулярному выражению.
    Например, sed -r -n '/([0-9]+\.){3}[0-9]+/p' распечатет все строки, содержащие айпишники, а мне надо голый айпишник
     
  • 1.10, Vladimir (??), 20:31, 01/11/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    egrep -o ([0-9]+\.){3}[0-9]+
    как то так
     
  • 1.11, mad_crack (?), 13:25, 22/12/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    удалить все после символа :
    sed -e 's/:.*//g'
     
  • 1.12, Student (??), 22:28, 10/01/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Архи полезно!Автору огоромное спасибо!
     
  • 1.13, Zhukov (?), 16:48, 12/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P'
    чёт не работает зараза... кто-нить может подсказать?
    запихиваю этой ерунде файл с текстом:
    1
    2
    2
    3
    1
    1
    4
    1
    2
    в результате это же и выдаёт...
    в чём косяк?
     
  • 1.15, das ich (?), 21:05, 13/10/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    found some error
    Изберательное удаление определенных строк:
        ^
     
  • 1.16, Александр Бурзак (?), 11:26, 24/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В разделе "Преобразование и замена текста:" есть ошибки:
    1.подразумеваеТ(ь?)ся (вопрос: что делаеТ(!)ся? - ответ: подразумеваеТ(!)ся, т.е. "мягкий знак" не нужен),(?) что (в этом сложноподчинённом предложении перед "что" необходима "запятая") все строки заканчиваюТ(ь?)ся (вопрос: строки что делаюТ(!)? - ответ: заканчиваюТ(!)ся, т.е. "мягкий знак" не нужен)
    2.слово "ком(М?)анда" пишется с одной буквой "м"
     
     
  • 2.28, playnet_ (?), 14:29, 10/10/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А также не 4ре (четырере), 4рех (четырёхрех), а просто 4. Только теме 11 лет, но кому какое дело..
     

  • 1.17, plat (?), 14:47, 03/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    помогите разработать скрипт в среде cygwin
    задание:
    в заданном файле производится перемена местами двух строк с заданными номерами.
    примечание:имя файла и номера строк вводятся в качестве параметров скрипта
     
  • 1.18, Николай Стримбан (?), 22:44, 03/02/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    подскажите пожалуйста: мне нужно заменить fon12.jpg) repeat scroll на  fon12.jpg) repeat fixed, причём заменить это надо не в одной папке, а во всех файлах и папках этого каталога.

    что нужно писать?
    а то я пишу sed -ri 's/repeat scroll/repeat fixed/' *html ,но он заменяет только в файлах корневого каталога, и при этом заменяет в двух местах. а мне надо только в первом

     
  • 1.19, Alex (??), 21:23, 09/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пишу скрипт для автоматической настройки некой конфигурации сервера, возникла такая задача:
    есть некий конфигурационный файл config.cnf c простой структурой

    export параметр1=значение1 export параметр2=значение2


    причем значение1 и значение2 неизвестны
    нужно автоматом заменить на

    export параметр1=необходимое_значение1 export параметр2=необходимое_значение2


    Пожалуйста наведите пример как

     
     
  • 2.20, Ant0 (??), 22:04, 29/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Рядышком посмотри ответ: http://ant0.ru/sed_edit_interfaces.html
    Не разберешься - пиши вмылу.
     

  • 1.21, Alex (??), 13:28, 21/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Удалить со второй строчки до конца sed '2,$d'
     
  • 1.22, Mans (??), 17:37, 12/11/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ребята подскажите: как в файле удалить все первые три символа после пробела там запись такая :  1234567890пробел1234567890   надо чтобы стало 4567890пробел4567890
     
  • 1.23, Мимокрокодил (?), 12:38, 14/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отличная статья! Только очень сложно её читать из-за грамматических ошибок :(
     
  • 1.24, Аноним (-), 18:16, 11/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Командочка fold, по 5 символов вывод
    :a;s/^.\{,5\}/&\n/;P;D;ba'

     
  • 1.25, Аноним (-), 18:16, 11/09/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поправка :a;s/^.\{5\}/&\n/;P;D;ba'
     
     
  • 2.26, Мансур (?), 15:10, 12/09/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Поправка :a;s/^.\{5\}/&\n/;P;D;ba'

    Спасибо огромное....

     

  • 1.27, NLOLegion (?), 14:40, 31/12/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите, очень надо! Как заменить символ "!" на содержимое файла "1.txt" ?
    А вообще sed помог запилить не хилое голосовое управление!
     

    игнорирование участников | лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру