2014-04-07 53 views
1

我正在执行FTP PUT请求将一个文件传输到另一台服务器。这只是一个文本文件。FTP文件转换将制表符转换为空格

我传送文本文件的格式ID"TAB"-transID

ftp -ni XX.XX.XXX.XX <<EOF 
user ABCD,123456 
cd/
put /appl/data/ftp_dpm_412.txt /ftp_dpm_412_$(date +%s).sync 


quit 
EOF 

接收方报告说,他们收到的文件的格式ID"space""space""space""space""space"-transID。他们的系统需要选项卡。

我已经在我的最终确认,这些文件是格式化为ID"TAB"-transID.(我甚至跑sed 's/ //g',以确保我删除了所有的空格在发送之前)

难道这是正在做的文件传输时发生了什么?我是否需要在脚本中添加某些内容以便在特定模式下进行传输以防止发生这种情况?

回答

0

首先,尝试确认您的远程用户在正常过程之外收到的文件内容。如果你的远程用户可以使用在Unix/Linux命令行做

head -1 ftped_file.txt | cat -vet 

,你应该看到^I字符序列,这意味着选项卡中的远程文件。

这假定文件的第一行文件中包含Tab字符。如果没有,那么您需要将head -1更改为head -5或者您需要查看具有制表符字符的行数。


否则,有3个地方(也许更多),你的文件可以得到改变。

  1. 你的ftp客户端。执行man ftp并搜索“标签”和/或“空格”并确认您的客户端上没有将标签转换为空格的选项。

  2. 远程ftp服务器。您必须找到该服务器的文档并执行相同的搜索。

  3. (最有可能的地方),您的远程客户端的文件查看器?他们是在像Ultra-Edit,notepad ++或其他文本编辑器中打开这个文件吗?其中许多都有一个默认选项来将制表符转换为空格。

相关问题