Показаны сообщения с ярлыком Sed. Показать все сообщения
Показаны сообщения с ярлыком Sed. Показать все сообщения

Linux: вывод в консоль заданных строк из файла

Чтобы вывести в консоль только строки, заданные определенным регулярным выражением, достаточно выполнить команду:
sed -n '/regexp/p' filename
Без опции -n sed выведет помимо заданных строк все строки файла, на место regexp надо подставить регулярное выражение, на место filename - имя файла, /p - это имя команды sed.
Строки можно также выводить по вхождению подстроки:
sed -n '/some_words/p' filename
по номеру:
sed -n '5p' filename
и по диапазону номеров:
sed -n '5,9p' filename
Диапазон также можно задавать двумя подстроками или двумя регулярными выражениями:
sed -n -e '/some_words_1/,/some_words_2/p' filename
sed -n -e '/regexp1/,/regexp2/p' filename
Также можно вывести строки, начиная от заданной и до конца файла:
sed -n '/regexp/,$p' filename

Linux: заменить символы '<', '>' и '&' на соответствующие html коды в командной строке

Когда вставляю сюда код, указанные символы часто заменяются неправильно на соответствующие html-коды ('&lt;', '&gt;' и '&amp;' соответственно). В Linux произвести эту замену самому перед вставкой проще всего мне показалось используя sed:
sed 's/\&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g' inputFileName.cpp
Команда s/ в sed заменяет одну подстроку на другую. Отдельные команды в sed разделяются симоволом точки с запятой, соответственно, здесь три команды замены. Формат команды s/ такой:
sed 's/regexp/replacement/g' inputFileName
/g означает "заменить все вхождения в файле". Ну и символ & приходится экранировать, так как он используется в регулярных выражениях.