Почему вы заключаете параметры функций оболочки в круглые скобки? Попробуйте это:
function alterpdf(){
swap titlepage_$1.tex titlepage_$2.tex
swap titlepage_$1.pdf titlepage_$2.pdf
pdflatex allTitle page.tex
}
Возможно, вы захотите перевернуть файл, взять первые N строк, а затем отменить вывод этого
$ seq 100 > file
$ tac file | sed -n 5,10p | tac
91
92
93
94
95
96
Как и в других ответах, я не знаю способа сделать это в одной строке с помощью sed, за исключением, возможно, переноса большого буфера, но с двумя строками это возможно проще:
NUM_LINES=$((`sed -n $= file1.txt`-20)) # or however many lines you want instead of 20
sed -i "$NUM_LINES r file2.txt" file1.txt
Может показаться, что вы хотели сделать это в одну строку, и потенциально вы могли бы использовать множество N;N;
с, но это, вероятно, не очень практично.