我正在开发一个关于windows rdp的应用程序。现在,当我尝试使用sed命令直接替换rdp文件中的IP地址字符串时,我遇到了问题。但执行此命令后,原始rdp文件出现乱码。
sed -i "s/address:s:.*/address:s:$(cat check-free-ip.to.rdpzhitong.rdp)/" rdpzhitong.rdp
我发现该文件的格式是Little-endian UTF-16 Unicode。
我仍然可以使用sed命令正确替换文件中的文本吗?还是其他方法来处理这个问题?
答案 0 :(得分:14)
如果文件是UTF-16编码文本(如RDP is),并且这不是您当前的编码(它不可能在Linux上),那么您可以使用{预处理和后处理文件{1}}。例如:
iconv
答案 1 :(得分:1)
如果您 cat 该文件,则可以使用 sed 。在提出这个问题之前没有任何伤害。
如果 check-free-ip.to.rdpzhitong.rdp 文件有任何文本,您可能需要这样做:
address=$(sed 1q check-free-ip.to.rdpzhitong.rdp)
sed -i "s/address:s:.*/address:s:$address/" rdpzhitong.rdp
还有一点建议。尝试没有-i开关,直到你知道它正在工作。