簡體   English   中英

如何讀取存儲在變量中的 CSV 文件

[英]How to read CSV file stored in variable

我想使用 Shell 讀取 CSV 文件,但由於某種原因它不起作用。

我用它在我的 csv 文件夾中找到最新添加的 csv 文件

lastCSV=$(ls -t csv-output/ | head -1)

這是計算行數。

wc -l $lastCSV

輸出

wc: drupal_site_livinglab.csv: No such file or directory

如果我回顯文件,它會說:drupal_site_livinglab.csv

你的問題是你是你試圖閱讀的路徑的一個目錄。 快速修復是wc -l "csv-output/$lastCSV"

請記住,解析ls -t雖然方便,但並不完全可靠,因此您應該考慮這樣的事情來保護您免受尷尬的文件名:

last_csv=$(find csv-output/ -mindepth 1 -maxdepth 1 -printf '%T@\t%p\0' |
  sort -znr | head -zn1 | cut -zf2-)
wc -l "$last_csv"
  • GNU find列出所有文件及其最后修改時間,使用空字節分隔輸出以避免文件名尷尬的問題。
    • 如果刪除-maxdepth 1 ,這將成為遞歸搜索
  • GNU sort從最新到最舊排列文件,使用-z接受空字節分隔的輸入。
  • GNU head -z返回排序列表中的第一條記錄。
  • 最后的 GNU cut -z會丟棄時間戳,只留下文件名。

你也findstat替換find (同樣,這里假設你有 GNU coreutils):

last_csv=$(stat csv-output/* --printf '%Y\t%n\0' | sort -znr | head -zn1 | cut -zf2-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM