0

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

1 回答 1

2

你的 awk 支持 unicode 吗?我怀疑不是。如果是这种情况,试试这个:

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

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

于 2009-10-08T16:20:40.227 回答