我有一个简单的文本文件,名为samples.log
。在这个文件里我有几行。假设我总共有10行。我的目的是用同一文件的最后一行替换文件的前5行。例如:
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
line 9
line 10
成为:
line 6
line 7
line 8
line 9
line 10
换句话说,我只想删除文件的前5行,然后向上移动最后5行。我正在研究Linux。最简单的方法是什么?有命令吗?我正在开发一个C程序,但我认为最好在程序中执行linux命令,而不是在C中执行这个操作,我认为这会很困难。
简单
tail -n +6 samples.log
将完成这项工作。tail -n +NUM file
将从NUM
行开始打印file
您可以使用以下命令:
tail -n $(($(cat samples.log | wc -l) - 5)) samples.log
您计算的行总数:
cat samples.log | wc -l
从中减去5:
$((x - 5))
你使用最后一行:
tail -n x samples.log