我有一个大文本文件,中间损坏了当我尝试读取这个文件时,说使用 awk 查找行数:
person@terminal> awk 'END{print NR}' file.txt
awk: (FILENAME=file.txt FNR=300) fatal: error reading input file `file.txt': Input/output error
所以我考虑过使用 tail 命令来打印这个损坏行之后的所有内容,并将输出与它之前的所有内容连接起来。 tail 命令默认工作正常,因为它从文件末尾开始读取文件,所以它可以毫无问题地打印文件的末尾。但问题是,我不知道这个文件有多少行。因此,如果我尝试使用 tail 跳过损坏点之前的所有行,我会得到:
person@terminal> tail -n +301 file.txt > after_error.txt
tail: error reading `file.txt': Input/output error
这意味着虽然 tail 可以从文件的末尾开始读取文件,但如果我告诉它跳过前 N 行,它仍然会从文件的开头读取。
我的问题是,如何打印损坏点之后的所有行?我也很高兴知道是否有其他方法可以挽救此文件。
最佳答案
尝试
strings file.txt
或
cp file.txt /otherPartition/file.txt
关于linux - 跳过前 N 行并打印文件的其余部分,假设文件中间存在文件损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47762218/