假设你想删除一个文本文件的前N行,并且你不想先将后面要保留的内容先保存到其他临时文件中,那么可以在shell中这样写(此处假设要删除的是 /root/file.txt 的前10行):
ex /root/file.txt << EOF
1,10d
wq
EOF
注意第二行的写法:1,10d 表示删除第1到第10行。同理,你要删除第3到第7行,可以写成 3,7d ,依此类推。
这种方法倒是有一个弊端:当你的文件行数 < 要删除的行数时(此处所说的“你的文件行数”不包括文件的最后一个空行,即:如果你的文件最后一行是一个空行,那么么此处所说的“你的文件行数”就不包括它),那么用这种方法就会一行都删不掉(而不是我们想像中的“会删除文件中的所有行”)。
例如,你的文件内容为(5行+一个空行):
11
22
33
44
55
(此处为一个空行,即:只有一个换行符 \n 的行)
那么使用 1,6d 就会删除不掉任何内容,只有使用 1,5d 才能删除所有内容。
文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤
转载需注明出处:codelast.com
感谢关注我的微信公众号(微信扫一扫):
NULL