Я заметил что-то немного странное, обманывая с sed. Если вы попытаетесь удалить несколько строк (по номеру) из файла, но любой интервал, указанный позже в списке, полностью содержится в интервале ранее в списке, то после указанного (большего) интервала удаляется дополнительная одиночная строка.
seq 10 > foo.txt
sed '2,7d;3,6d' foo.txt
1
9
10
Такое поведение было вызвано раздражающей ошибкой для меня, так как в моем script я создал интервальные конечные точки "на лету", а в некоторых случаях полученные интервалы были избыточными. Я могу это очистить, но я не могу придумать, почему sed будет вести себя так специально.