Как и в случае с другими командами - главное для sed - это опыт, который можно получить только практикой. А практика начинается с обычного текстового файла, который можно создать в обычном консольном редакторе типа nano и затем использовать как материал для sed. У меня это выглядело так: # исходный файл cat file.txt | nl 1 москва 2 питер 3 санкт петербург 4 киев 5 минск 6 новгород 7 уфа 8 казань 9 иркутск 10 сергиев посад 11 павловский посад 12 калязин 13 углич 14 самара 15 владимир 16 суздаль 17 кострома Дальше я начал свои эксперименты: # вывести всё в одну строку sed ':a;{N;s/n//;ba}' file.tx # вывести строку N3 sed -n 3p file.txt # удалить строку N3 (cанкт петербург) sed 3d file.txt # вывести "посады" sed -n '/посад/p' file.txt # вывести города на "са" sed -n '/^са/p' file.txt # удалить пустые строки sed '/^$/d' file.txt # удалить все строки "посад" sed '/посад/d' file.txt # удалить все слова "посад" в строках sed 's/посад//g' file.txt # удалить все строки до первого "посад" sed 1,'/посад/d' file.txt # удалить все строки до первой пустой sed 1,'/^$/d' file.txt # заменить посад на ПОСАД sed 's/посад/ПОСАД/' file.txt # заменить только павлов посад на ПОСАД sed '/павл/s/посад/ПОСАД/' file.txt # в каждой строке заменить все "о" на "О" sed 's/о/0/g' file.txt # удалить все пробелы в конце строки sed 's/ *$//' file.txt Я не стал накручивать большие регулярные выражения - но это возможно и легко, поскольку параметры основных команд sed (p,d,s,y) - могут являться регулярными выражениями. Продолжаем изыскания: # добавляем пустые строки sed G file.txt # удалить каждую третью строку sed 'n;n;d' file.txt # количество строк в файле sed -n '$=' file.txt # добавляем строки с номерами sed = file.txt # удаляем пробелы и табуляции с конца и с начала sed 's/^[ t]*//;s/[ t]*$//' file.txt
Awk/Sed Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor