Просто запустите обе команды в одном sed
вызове, который сначала удалит запятую:
$ cat input.txt
foo,
bar,
baz,
quux,
$ sed -n '3s/,$//; 1,3p; 3q' input.txt
foo,
bar,
baz
Обратите внимание, что для s///
используется тот же номер строки, что и для конца диапазона, чтобы print вместо $
.
В качестве оптимизации это также происходит после печати последней строки диапазона вместо продолжения обработки остальной части файла (и ничего с этим не делать).