Чтобы перенаправить поток с выхода на вход нужно использовать временный файл или нужен другой способ?
http://www.ict.edu.ru/ft/002355/lab6.htm
К примеру, tr -d "[0-9]" < a.txt | sort | uniq > b.txt
Поток с удаленными [0-9] с выхода подать на вход для сортировки и т.д.
Не знаю как реализовать на Паскале..
Ну, поскольку ты молчишь, на каком Паскале тебе это надо реализовать, и что представляет из себя тот самый поток, то предложу тебе вот такой вариант (псевдокод, но реализация существует... Раздел не тот, чтоб приводить программу полностью) :
type
stream = list; { <--- обычный односвязный список }
procedure read_stream(var f: text): stream; { <--- вернет указатель на голову списка }
begin {...} end;
procedure write_stream(in_stream: stream; var f: text);
begin {...} end;
procedure tr(in_stream: stream; params: set of char): stream;
begin {...} end;
procedure sort(in_stream: stream): stream;
begin {...} end;
{ Вызывается все это вот так: }
write_stream(sort(tr(read_stream(f_in), ['0' .. '9'])), f_out);