如何使用Lua打印基于列的word?有点像awk

如何使用Lua打印基于列的word?有点像awk,awk,lua,Awk,Lua,我想知道Lua中是否有类似于awk的东西。 例如,我有以下字符串 "This is a cup of tea" 我想打印出来 "cup" 通过使用列号,是否有这样的函数,或者我必须创建自己的函数 查找单词不起作用,因为单词前后可能会发生变化。Lua没有“概念”列。您需要手动执行此操作: local t = {} for word in line:gmatch("%S+") do table.insert(t, word) end 然后使用列号访问t,如t[4]尝试以下操作: s="Th

我想知道Lua中是否有类似于awk的东西。 例如,我有以下字符串

"This is a cup of tea"
我想打印出来

"cup"
通过使用列号,是否有这样的函数,或者我必须创建自己的函数


查找单词不起作用,因为单词前后可能会发生变化。

Lua没有“概念”列。您需要手动执行此操作:

local t = {}
for word in line:gmatch("%S+") do
  table.insert(t, word)
end
然后使用列号访问
t
,如
t[4]

尝试以下操作:

s="This is a cup of tea"

function column(s,n)
    local p=string.rep("%s+.-",n-1).."(%S+)"
    return s:match(p)
end

for n=1,10 do
    print(n,column(s,n))
end

如果您只需要第n列,那么不必为表操心,只需计数和中断。
s:gsub(“%s+”,“”,n-1):匹配“%s+”