Awk
cygwin awk 輸出到 Windows 行分隔符
我可以找到列印 zip 條目列表並轉發到 txt 文件的方法。
unzip -l my.zip | awk '{print $4}' > my.txt
當我
my.txt
在 Windows 的記事本中打開文件時,行分隔符被忽略,所有行都呈現在一行中。如何使這些管道線具有適當的行分隔符?
每個
awk
已處理行的輸出都以換行符 (\n
) 結束,這是 Unix/Linux 標準。Windows/DOS 期望輸入後跟換行符來標記行尾 (\r\n
)。notepad
將顯示您目前看到的所有 Linux 生成的文件。
awk
要解決此問題,請通過命令將 s 的輸出通過管道傳輸unix2dos
,該命令將為您將n
s 轉換為\r\n
s:unzip -l my.zip | awk '{print $4}' |unix2dos > my.txt
或者,嘗試使用變數在每行末尾
awk
輸出:\r\n``ORS
unzip -l my.zip | awk -v ORS='\r\n' '{print $4}' > my.txt
要列出沒有頁眉和頁腳:
unzip -l my.zip | awk -v ORS='\r\n' '{print $4}' | tail -n +4 | head -n -2 > my.txt
或者
或者,使用
zipinfo -1 <zip file>
(數字 1,不是字母 l)列出沒有頁眉和頁腳的文件。您可能仍需要通過管道傳輸它unix2dos
。只有在 CygWin 中可用時才有用zipinfo
。