在我的ContOS服务器上,我有几个带有Windows行结尾的大文件。其中,我需要第一行n
来运行一些测试。
我尝试了一些标准的“linux”方法:
head -10 file.dat
和
sed -n 1,10p file.dat
和
awk 'NR <=10' file.dat
所有产生的都不尊重Windows行结尾,只是输出整个文件。
有没有办法获取带有Windows行结尾的文件的n
行?
此外,应该注意的是输出应该仍然具有窗口行结束。
答案 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
这将取代所有回车。