繁体   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