Формат файла с помощью Awk в PowerShell - PullRequest
0 голосов
/ 08 октября 2009

Все, что я сделал, это 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
??????         ? ????  ?  ? ??? ??       ???? ???????????
 ??
?

1 Ответ

2 голосов
/ 08 октября 2009

Ваш awk поддерживает Unicode? Я подозреваю, что нет. Если это так, попробуйте это:

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

По умолчанию PowerShell перенаправляет в файл в формате Unicode. По сути, использование «>» является просто ярлыком для «| Out-File {path} -Encoding Unicode»

...