我有一个很大的文本文件,当我尝试读取这个文件时,它在中间被损坏了,比如使用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行,它仍然会从文件的开头开始读取。
我的问题是,如何打印坏点之后的所有行?我也很高兴知道是否有其他方法来抢救这个文件。
发布于 2017-12-12 07:18:37
试一试
strings file.txt或
cp file.txt /otherPartition/file.txthttps://stackoverflow.com/questions/47762218
复制相似问题