Скажем, у вас есть файл или программа, которая генерирует список номеров строк, которые вы хотите, вы можете отредактировать это с помощью sed
, чтобы превратить его в скрипт, который печатает эти строки и передает его во второй вызов sed
.
Конкретно, скажем, у вас есть файл с именем lines
, в котором указано, какие строки вы хотите (или это может быть программа, которая генерирует строки на своем stdout
):
1
3
4
Вы можете сделать это в sed
сценарии так:
sed 's/$/p/' lines
1p
3p
4p
Теперь вы можете передать это другому sed
в качестве команд для выполнения:
sed -n -f <(sed 's/$/p/' lines) FileYouWantLinesFrom
Это имеет преимущество в том, что не зависит от максимальной длины аргументов, которые вы можете передать скрипту, потому что команды sed
находятся в псевдофайле, т.е. не передаются в качестве аргументов.
Если вам не нравятся / используют bash
и процесс подстановки , вы можете сделать то же самое, как это:
sed 's/$/p/' lines | sed -n -f /dev/stdin FileYouWantLinesFrom