我所做的只是一个文件,然后运行一个简单的awk打印。我是PowerShell和Awk的新手,但输出显然不是预期的结果。有谁能解释一下?它与文件的格式有关吗?
PS C:\Documents and Settings\lmoser\My Documents\Test> awk '{ print }' lsfiles.txt > awkedlsfile.txt
PS C:\Documents and Settings\lmoser\My Documents\Test> cat lsfiles.txt
---- ------------- ------ ----
-a--- 10/8/2009 10:32 AM 0 file1.txt
-a--- 10/8/2009 10:32 AM 0 file2.txt
-a--- 10/8/2009 10:32 AM 0 file3.txt
-a--- 10/8/2009 10:32 AM 0 file4.txt
-a--- 10/8/2009 10:32 AM 0 file5.txt
-a--- 10/8/2009 10:32 AM 0 file6.txt
-a--- 10/8/2009 10:32 AM 2164 lsfiles.txt
PS C:\Documents and Settings\lmoser\My Documents\Test> cat awkedlsfile.txt
---- ------------- ------ ----
?????? ? ???? ? ? ??? ?? ?????????
??
-a--- 10/8/2009 10:32 AM 0 file2.txt
?????? ? ???? ? ? ??? ?? ?????????
??
-a--- 10/8/2009 10:32 AM 0 file4.txt
?????? ? ???? ? ? ??? ?? ?????????
??
-a--- 10/8/2009 10:32 AM 0 file6.txt
?????? ? ???? ? ? ??? ?? ???? ???????????
??
?
答案 0 :(得分:2)
你的awk是unicode吗?我怀疑不是。如果是这样的话,试试这个:
awk '{ print }' lsfiles.txt | Out-File awkedlsfile.txt -encoding ASCII
默认情况下,PowerShell使用Unicode格式重定向到文件。基本上使用“>”只是“| Out-File {path} -Encoding Unicode”
的快捷方式