PowerShell中使用Awk的文件格式

时间:2009-10-08 15:42:21

标签: powershell awk gawk

我所做的只是一个文件,然后运行一个简单的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
??????         ? ????  ?  ? ??? ??       ???? ???????????
 ??
?

1 个答案:

答案 0 :(得分:2)

你的awk是unicode吗?我怀疑不是。如果是这样的话,试试这个:

awk '{ print }' lsfiles.txt | Out-File awkedlsfile.txt -encoding ASCII

默认情况下,PowerShell使用Unicode格式重定向到文件。基本上使用“>”只是“| Out-File {path} -Encoding Unicode”

的快捷方式