输入文件
hello how are u
some what doing fine
so
thats all
huh
thats great
cool
gotcha im fine
我想删除最后4行而不重新定向到另一个文件或说就地编辑。
我使用了head -n -3 input.txt
,但它只删除了最后两行。
还想了解是否有可能将管道头的输出传输到sed
像head -n -3 input.txt | sed ...
是的,我通过sed的选项删除了如下所示的最后n行,但由于无法理解命令的细微差别,因此继续使用head命令替代方法
sed -e :a -e '$d;N;2,5ba' -e 'P;D' file
答案 0 :(得分:1)
编辑: ,而不创建临时文件解决方案:
awk -i inplace -v lines=$(wc -l < Input_file) 'FNR<=(lines-4)' Input_file
能否请您尝试以下操作,如果有帮助,请告诉我。
tac Input_file | tail -n +5 | tac > temp_file && mv temp_file Input_file
解决方案第二: 使用awk
。
awk -v lines=$(wc -l < Input_file) 'FNR<=(lines-4)' Input_file > temp_file && mv temp_file Input_file