所以我有一个奇怪的问题。我编写了一个重新格式化数据文件的脚本。我基本上使用正确的列顺序,间距等创建新文件。然后我unix2dos这些文件(我正在格式化这些文件的程序是Windows的DIPS,我假设文件应该是ansi)。当我打开DIPS程序中的文件时,会发生错误,文件将无法打开。
当我通过DIPS程序创建相同类型的数据文件并在记事本中打开它时,它与我用脚本创建的数据文件完全匹配。
另一方面,如果我首先在Kedit中打开我用脚本创建的数据文件,保存它们,然后在DIPS程序中打开它们一切正常。
我的问题是,Kedit可以节省哪些东西,unix2dos可能没有?
(如果我尝试使用记事本或字垫保存而不是Kedit,则文件无法在DIPS中打开)
以下是使用unix
中的diff命令创建的内容”
1,16c1,16
*此文件由Dips for Windows生成
*以下2行是此档案的标题
Cobre Panama
钻孔B11106-GT
遍历数量:0
全球定位是:
DIP / DIPDIRECTION
0.000000(赤字)
无数量
额外列数为:0
-
*此文件由Dips for Windows生成
*以下2行是此档案的标题
Cobre Panama
钻孔B11106-GT
遍历数量:0
全球定位是:
DIP / DIPDIRECTION
0.000000(赤字)
无数量
额外列数为:0
18c18
-
440c440
-
442c442
-1
“
任何帮助将不胜感激!谢谢!
答案 0 :(得分:1)
好!想出来了。
只需在unix2dos文件中删除行中最后一个字母和换行符之间的任何空格字符。在Kedit中保存时,您会删除行中最后一个字母和换行符之间的空格。
在我的剧本中,我编写了一个糟糕的编程习惯,我正在写这样的字符串;
echo“这是一个示例字符串”>> outfile.txt
字符数为32,如果你能看到断行字符(chr(10)),那么该行就会读取;
这是一个示例字符串
如果unix2dos outfile.txt,该行看起来与上面相同,但具有不同的断行符。但是,当您将文件放入Kedit并保存时,现在字符数为25,并且该行看起来像这样;
这是一个示例字符串
这是因为Kedit不会在行尾保留空格。它将返回或换行符放在最后一个字母或“非空格”字符中。
因此,读取像DIPS(我猜测)或更广泛使用的AutoCAD脚本的文字输入的程序将在返回字符之前存在额外空格的实际问题。基本上在AutoCAD脚本中,行中的空格被视为返回字符。因此,如果你在一行的末尾有十个额外的空格,它将被视为十个返回,而不是你想要的那个。
OH,如果这对你有帮助,或者虽然它很好,请给我一个投票!
答案 1 :(得分:0)
unix2dos转换每行末尾的line-break字符,从unix换行符(10)转换为dos换行符(13,10)
Kedit可以更改文件的encoding(例如从ansi更改为UTF-8)
您可以使用iconv实用程序(在Linux机器上)
更改文件的编码