Использование GNU СЭД, перезапись тривиальна с опцией '-i
'; используя стандартный sed, вы должны записать во временный файл и затем скопировать его поверх оригинала.
Другие ответы предшествуют заданию «пустые строки» в вопросе.
sed -i '/third/d;/^[ ]*$/d' my.txt
Первая часть команды, вплоть до запятой, выглядит для «третьего» и удаляет любую соответствующую строку. Вторая часть команды ищет любую строку, состоящую из нуля или более пробелов, и удаляет их. Если вы хотите удалить строки с пробелами и вкладками, добавьте вкладку в класс символов - нет удобного способа отображения вкладок на языке разметки SO.
Вы могли бы то же самое написать:
sed -i -e '/third/d' -e '/^[ ]*$/d' my.txt
И для не-GNU СЭД, вы должны использовать:
sed '/third/d;/^[ ]*$/d' my.txt > x.$$
cp x.$$ my.txt
rm -f x.$$
Это не будет удалить строку, она будет просто заменить «третье» с пустой строкой. –
@Sean: Действительно; Думаю, я неправильно понял вопрос. –