有没有一种简单的方法可以在sed
文件末尾之前的 N 行处寻址文件?
例如,当尝试插入文件内容时,我可以轻松插入在以 结尾sed -i '$ r file2.txt' file1.txt
,甚至在以 结尾之前sed -i -e '$ e cat file2.txt' file1.txt
,但似乎找不到解决某些 N 行的方法前文件末尾。就像$-5
5 是数轴一样。我知道可能有一些head
和的组合tail
可以使用,但我正在寻找一种纯粹的sed
方法。
答案1
您可能想要反转该文件,请采取第一的N行,然后反转该行的输出
$ seq 100 > file
$ tac file | sed -n 5,10p | tac
91
92
93
94
95
96
答案2
与其他答案类似,我不知道如何用 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;
s 来完成,但这可能不太实用。