读取文件后删除CR或LF或CRLF

时间:2013-09-28 00:12:24

标签: j

J中,在阅读文本文件后,如何摆脱CRLFCRLF然后我可以使用".没有获得spelling error

2 个答案:

答案 0 :(得分:3)

使用freads动词会强制行结尾为LF。如果您使用的是J6或更早版本,则需要先加载files script load 'files'),否则freads可用作标准库的一部分。然后,正如Eelvex建议cut ;.更具体地;._2可以使用字符串中的最后一个字符(在本例中为LF)来划分文件的行。定界符:

   _99&".;._2 freads 'myfile.txt'

最好使用Numbers(二元".)将文字转换为数字而不是Do(monadic ".)。这避免了在文件中“执行”代码的潜在安全问题,并将正确转换更多变体,比较以下内容:

   ". '45 -34'        NB. monadic ".
11
   _99 ". '45 -34'    NB. dyadic ".
45 _34

您可以更快地找到以下内容:

   _99 ". ];._2 freads 'myfile.txt'

Numbers一次作用于整个数组,而不是单独在每一行上运行。

答案 1 :(得分:1)

cut ;.使用最后一项(烦恼|2) - 应该是您的CR / LF - 同时删除此项(烦恼_2)。

a =: 0 : 0      NB. a =: (1!:1)<filename
1 2 3 4
5 6 7 8
)

*: ".;._2 a
 1  4  9 16
25 36 49 64