在Linux中,你可以使用多种方法来删除文件的后几行,下面列出了几种常用的方法:
使用sed

(图片来源网络,侵删)
sed 是一个流编辑器,可以用来对文本进行编辑操作,以下是如何使用sed 删除文件的后N行:
sed -i '1,$(( $(wc -l < filename) N ))d' filename
filename: 要处理的文件名。
N: 要删除的行数。
使用tail 和重定向
你可以结合head 和tail 命令来删除文件的后N行:

(图片来源网络,侵删)
head -n $(( $(wc -l < filename) N )) filename > temp.txt && mv temp.txt filename
filename: 要处理的文件名。
N: 要删除的行数。
使用awk
awk 是一个强大的文本处理工具,也可以用来删除文件的后N行:
awk 'NR<=$(( $(wc -l < filename) N ))' filename > temp.txt && mv temp.txt filename
filename: 要处理的文件名。

(图片来源网络,侵删)
N: 要删除的行数。
使用tac 和head
通过反转文件并删除前N行,然后再反转回来,可以达到删除后N行的效果:
tac filename | head -n $(( $(wc -l < filename) N )) | tac > temp.txt && mv temp.txt filename
filename: 要处理的文件名。
N: 要删除的行数。
| 方法 | 命令 | 说明 | ||
sed | sed -i '1,$(( $(wc -l | 使用sed 直接编辑文件 | ||
tail | head -n $(( $(wc -l temp.txt && mv temp.txt filename | 结合head,tail 和重定向 | ||
awk | awk 'NR temp.txt && mv temp.txt filename | 使用awk | ||
tac | tac filename | head -n $(( $(wc -l | tac > temp.txt && mv temp.txt filename | 结合tac,head 和重定向 |
选择适合你的方法来删除文件的后几行。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/57961.html