Используйте POSIX ex
. Да, он предназначен для редактирования файлов, но он будет работать в конвейере.
printf %s\\n 111 222 333 444 555 | ex -sc '1,2m$|%p|q!' /dev/stdin
Это может иметь любые произвольные команды, добавленные в начале или в конце конвейера, и будет работать так же. Еще лучше, учитывая наличие / dev / stdin
, он совместим с POSIX.
(Я не знаю, указан ли / dev / stdin
в POSIX или нет, но я вижу, что он присутствует как в Linux, так и в Mac OS X.)
Это имеет преимущество в удобочитаемости перед используя пространство удержания sed
- вы просто говорите ex
«переместите эти строки в конец», и он это сделает. (Остальные команды означают «распечатать буфер» и «выйти», которые также хорошо читаются.)
Примечание: приведенная выше команда ex
завершится ошибкой, если задано менее 2 строк в виде Вход.
Дополнительная литература:
попробуйте:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE