匹配 csv 文件中的文本,用于 X 首行和最后 X 个结果,并在 lua 中获取值

Posted

技术标签:

【中文标题】匹配 csv 文件中的文本,用于 X 首行和最后 X 个结果,并在 lua 中获取值【英文标题】:match text in a csv file, for the X firsts lines and the last X results and get a value in lua 【发布时间】:2022-01-07 23:23:55 【问题描述】:

我正在将一个 bash 脚本翻译成一个 Lua 程序。在 bash 脚本中有一行:

mapfile -t vol < <( cat csv_file | head -$id | grep locateme | tail -3 | cut -f6 -d\,)

结果是:

vol[0]=22
vol[1]=33
vol[2]=44

csv_file 是这样的:

16,a,b,c,d,9,16,0,3,65,0,0,locateme
16,a,b,c,d,11,16,0,3,65,0,0,notme
16,a,b,c,d,22,16,0,3,65,0,0,locateme
16,a,b,c,d,33,16,0,3,65,0,0,locateme
16,a,b,c,d,32,16,0,3,65,0,0,notme
16,a,b,c,d,44,16,0,3,65,0,0,locateme

我需要一个结果与 bash 相同的表:

vol[1]=22
vol[2]=33
vol[3]=44

拜托,我不知道如何开始

【问题讨论】:

this thread 有帮助吗? 【参考方案1】:

您将使用 Lua 表而不是 Bash 数组。

local vol = 

您需要 generic for loop 和 file:lines(...) 迭代器。通读整个io library 是个好主意。

这将允许您将 csv 文件的每一行作为字符串进行进一步处理。

不,您需要Lua's string library。有多种方法可以做到这一点。一种选择是使用另一个带有 string.gmatch 的通用 for 循环和一个合适的字符串模式来捕获您感兴趣的值。

【讨论】:

以上是关于匹配 csv 文件中的文本,用于 X 首行和最后 X 个结果,并在 lua 中获取值的主要内容,如果未能解决你的问题,请参考以下文章

Python 读取文件首行和最后一行

excel如何冻结首行和最后1行?

Linux环境下文本处理,提取需要的内容?

如何遍历文件夹 取得文件名和首行记录输出到CSV文件

Excel小技巧:表格如何同时显示首行和尾行?

14.Jmeter--csvRead函数的使用