IBM i qsh中使用Unix ls的ifs文件的对象列表

Mus*_*rge 3 unix ibm-midrange

我发现我可以使用qsh对IBM i(as400)对象运行unix命令.我想在IBM i qsh中使用ls将对象列表流式传输到ifs上的文件.这有效,但输出似乎是在EBCDIC中,并不是很可读.有没有办法转换为ASCII?

ls -ails /QSYS.LIB/ERP.LIB   >  all_ERP_files.txt
Run Code Online (Sandbox Code Playgroud)

jma*_*phy 6

你是正确的,简单地将输出lsqsh会给你EBCDIC.但是您可以通过管道输出iconv将其转换为utf-8,如下所示:

ls -ails /QSYS.LIB/ERP.LIB | iconv -f37 -t1208 > all_ERP_files.txt
Run Code Online (Sandbox Code Playgroud)

-f37是假设美国CCSID(即我的).如有必要,您可以将其替换为您的,以获得更好的转换.

考虑到John的回答,我尝试使用PASE call qp2term,当我这样做时,我不必管道输出iconv,文件是在CCSID 819中创建的.


对于一般Unix社区的启发,qsh是IBM i平台上的Unix类型shell ibm-midrange.该平台使用EBCDIC而不是其他Unix的ASCII.