带有Windows行结尾的头文件

时间:2018-03-28 18:23:13

标签: linux awk sed head

在我的ContOS服务器上,我有几个带有Windows行结尾的大文件。其中,我需要第一行n来运行一些测试。

我尝试了一些标准的“linux”方法:

head -10 file.dat

sed -n 1,10p file.dat

awk 'NR <=10' file.dat

所有产生的都不尊重Windows行结尾,只是输出整个文件。

有没有办法获取带有Windows行结尾的文件的n行?

此外,应该注意的是输出应该仍然具有窗口行结束。

2 个答案:

答案 0 :(得分:3)

由于Unix使用CRLF,因此Windows行结尾(LF)不会发生这种情况。所以LF仍然会被看到和使用。

如果行结尾只有CR而没有LF,那么您所描述的内容就会发生。您可以使用以下内容进行翻译:

tr '\r' '\n' < file.dat | head -10 | tr '\n' '\r'

第一个tr转换为Unix格式,第二个转换为原始格式。

答案 1 :(得分:1)

你总是可以使用vim:

   vim foo.txt +"%s/\r/\r/g" +wq

这将取代所有回车。