我試圖將我從終端獲得的資料結果保存為 .csv 檔案。
資料是這樣的:
1 558
2 576
3 492
...
500 517
是否有任何命令列可以運行,以便可以根據我擁有的資料創建 .csv 檔案?
uj5u.com熱心網友回復:
沒有簡單的工具可以回滾和選擇您已經收到的部分輸出(當然,如果您愿意,您可以使用滑鼠選擇某些內容并復制/粘貼到編輯器中并從那里保存),但是如果您可以再次運行相同的命令并獲得相同的結果,再次運行它并重定向到一個檔案,也許通過簡單的后處理。
some-command -with arguments -and -options >output.txt
您顯示的結果看起來像制表符分隔的資料,它已經基本上是 CSV,只有制表符而不是逗號 (TSV)。如果資料中沒有其他逗號,tr '\t' ','則會將所有選項卡更改為逗號,從而生成一個 CSV 檔案。
some-command -with arguments -and -options | tr '\t' ',' >output.csv
在更復雜的情況下,您可能需要使用各種標準的 Unix 實用程式來執行更復雜的后處理任務。確保您熟悉基本工具(tr、cut、paste等)以及至少標準腳本語言sed和 Awk的基礎知識。
最終,您可能希望熟悉 Python 等現代腳本語言csv,它的標準庫中有一個檔案齊全的模塊,并且學習曲線相當輕松。
uj5u.com熱心網友回復:
如果“資料”在檔案中并且我們假設它包含像您的訊息包含的空格;
編輯
不使用貓:
tr -s " " < <data_file> | sed -n 's/ /,/p' > <any_file_name>.csv
如果您的資料是輸出,您可以:
<output> | tr -s " " | sed -n 's/ /,/p' > <any_file_name>.csv
編輯前:
cat <data_file> | tr -s " " | sed -n 's/ /,/p' > <any_file_name>.csv
如果您想要任何其他 csv 檔案分隔符,只需將“,”更改為“\t”或“;”等預期的分隔符 等等。
如果您的資料只是一個輸出,您可以通過替換它來管道它cat <data_file>并繼續像上面一樣| tr -s " " | ...或將其寫入檔案中cat。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/398342.html
