linux删除命令后十行
-
在Linux系统中,可以使用一些命令来删除文本文件中的最后十行。以下是几种常用的方法:
方法一:使用sed命令
“`
sed -i -e :a -e ‘$d;N;2,10ba’ -e ‘P;D’ filename
“`
这个命令使用了sed命令的一些高级用法。它会首先删除文件的最后一行,然后将文件的最后十行存储到一个叫做”pattern space”的内存中,并且不断往前滚动直到只剩下十行。最后,将剩下的十行输出到终端并且覆盖原文件。方法二:使用head和wc命令
“`
total_lines=$(wc -l < filename)head -n $((total_lines-10)) filename > temp && mv temp filename
“`
这个方法首先使用wc命令来获取文件的总行数,然后使用head命令来输出除了最后十行外的内容,并将结果存储到一个临时文件中。最后,将临时文件重命名为原文件名,实现删除最后十行。方法三:使用tac、sed和tac命令
“`
tac filename | sed ‘1,10d’ | tac > temp && mv temp filename
“`
这个方法使用了tac命令来逆序输出文件的内容,然后使用sed命令删除第一行到第十行之间的内容。最后,再次使用tac命令将内容恢复为原始的顺序,并将结果存储到一个临时文件中,最后重命名为原文件名。以上是几种在Linux系统中删除文本文件最后十行的方法,你可以根据需要选择其中一种来使用。
2年前 -
在Linux系统中,可以使用以下命令删除文件中的最后十行。
1. tail命令:该命令用于从文件的末尾开始显示内容。通过结合其他命令,可以使用tail命令删除最后十行。
“`
tail -n +1 file.txt | head -n -10 > newfile.txt
“`这个命令将file.txt文件的所有行都输出,然后使用head命令从第一行开始,删除最后十行的内容,并将结果写入newfile.txt中。
2. sed命令:该命令用于流编辑器,可以用来进行文本替换和变换。可以使用sed命令删除最后十行。
“`
sed -i ‘$d’ file.txt
sed -i ‘:a;$d;N;2,10ba;P;D’ file.txt
“`第一个命令将删除文件的最后一行,而第二个命令将删除最后十行。
3. awk命令:该命令用于文本处理,可以用来删除最后十行。
“`
awk ‘{a[NR]=$0} END {for (i=1; i<=NR-10; i++) print a[i]}' file.txt > newfile.txt
“`这个命令将逐行读取文件中的内容,并将前面的行保存在数组a中。最后,只打印前面的行到新文件newfile.txt中。
4. head命令:该命令用于从文件或标准输入的开头显示内容。可以通过结合其他命令,使用head命令删除文件的最后十行。
“`
head -n -10 file.txt > newfile.txt
“`这个命令将删除文件的最后十行,并将结果写入newfile.txt中。
5. vim编辑器:使用vim编辑器的命令模式,可以删除文件的最后十行。
“`
vim file.txt
:1,$-10d
:wq
“`这将打开文件并进入vim的命令模式。然后,使用:1,$-10d命令删除最后十行,并使用:wq命令保存并退出文件。
以上是在Linux系统中删除文件中最后十行的几种常用方法。每种方法都有其优缺点,请根据自己的需求选择适合的方法。
2年前 -
在Linux中,可以使用一些命令来删除文件中的最后几行。下面介绍几种常用的方法和操作流程。
## 方法一:使用head和tail命令结合
“`shell
tail -n +1 file.txt | head -n -10 > newfile.txt
“`1. `tail -n +1 file.txt` 命令会从文件`file.txt`的第一行开始显示所有内容,`-n +1`表示从第一行开始。
2. `head -n -10` 命令会删除`tail`命令提取的内容的最后10行。
3. `> newfile.txt` 将结果输出到`newfile.txt`文件中。## 方法二:使用sed命令
“`shell
sed -e :a -e ‘$d;N;2,10ba’ -e ‘P;D’ file.txt > newfile.txt
“`1. `sed` 是一个强大的文本编辑器,`-e` 参数用来执行多个命令。
2. `-e :a` 在标签`a`处创建一个循环。
3. `’$d’` 删除最后一行。
4. `N` 读取下一行并追加到模式空间。
5. `2,10ba` 如果行号是2到10之间,跳转到标签`a`。
6. `P` 打印模式空间的第一行。
7. `D` 删除模式空间的第一行并继续循环。
8. `> newfile.txt` 将结果输出到`newfile.txt`文件中。## 方法三:使用awk命令
“`shell
awk ‘{a[NR]=$0}END{for (i=1; i<=NR-10; i++) print a[i]}' file.txt > newfile.txt
“`1. `awk` 是一种模式扫描和处理语言,`{a[NR]=$0}` 将每一行的内容存储在数组`a`中。
2. `END` 关键字表示在处理完所有行之后执行操作。
3. `for (i=1; i<=NR-10; i++) print a[i]` 循环输出数组`a`的前`NR-10`行。4. `> newfile.txt` 将结果输出到`newfile.txt`文件中。以上是在Linux系统中删除文件中的最后十行的几种常用方法,你可以根据自己的需求选择合适的方法进行操作。
2年前