代码之家  ›  专栏  ›  技术社区  ›  Mustapha George

ibmiqsh中使用unixls的ifs上的文件的对象列表

  •  3
  • Mustapha George  · 技术社区  · 8 年前

    我想在ibmiqsh中使用ls将对象列表流式传输到ifs上的文件。这是可行的,但输出似乎在EBCDIC中,可读性不强。有没有办法转换成ASCII码?

    ls -ails /QSYS.LIB/ERP.LIB   >  all_ERP_files.txt
    
    3 回复  |  直到 8 年前
        1
  •  6
  •   jmarkmurphy    8 年前

    您是对的,只需重定向 ls 在内部 qsh iconv 要像这样将其转换为utf-8:

    ls -ails /QSYS.LIB/ERP.LIB | iconv -f37 -t1208 > all_ERP_files.txt
    

    那个 -f37 假设是美国的CCSID(那是我的)。如果需要的话,你可以用你的来替换它,以获得更好的转换。

    call qp2term ,当我这样做时,我不必通过管道传输输出 ,该文件是在ccsid819中创建的。


    是IBM i平台上的Unix类型shell, ibm-midrange . 这个平台使用EBCDIC,而不像其他unix那样使用ASCII。

        2
  •  3
  •   John Y    8 年前

    因为Qshell(由 qsh strqsh )在EBCDIC中运行,您至少可以使用以下几种解决方法:

    1. 尝试在PASE中执行相同的命令。

    要调用PASE shell(而不是Qshell),请执行以下操作 CALL QP2TERM 从CL命令提示符。从那里,除了shell显式地以ASCII操作外,大多数Unix风格的命令都是可用的。

    1. 事后将流文件转换为ASCII。

    除了@jmarkmurphy的建议之外,您还可以使用 CPY CL中的命令:

    CPY &STMF TOOBJ(&STMF) TOCCSID(819) DTAFMT(*TEXT) REPLACE(*YES)
    

    在上述步骤中,更换 &STMF

        3
  •  0
  •   PoC    8 年前

    其他人在将来的搜索中需要帮助:当从ibmi传输数据时,转换为ASCII很可能是必要的。

    IBM i FTP服务器在运行时将EBDIC转换为ASCII Latin1 不 正在传输二进制文件。ASCII模式是必需的。

    有关更多信息,请参见此 PDF for FTP Support from IBM .