在Lua脚本上运行sed命令

在Lua脚本上运行sed命令,sed,lua,Sed,Lua,我需要在Lua脚本上运行此sed命令: sed -i "1i sameText" log.txt 我无法在Lua脚本上向sed发送var(日志文件名) 我有: 错误: sed:no input files首先,datafile应该是字符串,而不是可能不存在的日志对象的“txt”字段 在Lua字符串中嵌入变量的简单方法是使用: 如果您只想在文件开头插入文本,也可以直接在Lua中插入,而无需sed: local function prependToFile(filename,

我需要在Lua脚本上运行此sed命令:

sed -i "1i sameText" log.txt
我无法在Lua脚本上向sed发送var(日志文件名)

我有:

错误
sed:no input files

首先,
datafile
应该是字符串,而不是可能不存在的日志对象的“txt”字段

在Lua字符串中嵌入变量的简单方法是使用:

如果您只想在文件开头插入文本,也可以直接在Lua中插入,而无需sed:

local function prependToFile(filename, txt)
    local hnd = io.open(filename, "rb")
    local s = hnd:read "*a"
    hnd:close()

    local hnd = io.open(filename, "wb")
    hnd:write(txt, "\n", s)
    hnd:close()
end

local datafile = 'log.txt'
local date = os.date("%d-%m-%Y,%H:%M:%S")
prependToFile(datafile, date .. ",sameText")

首先,
datafile
应该是一个字符串,而不是可能不存在的日志对象的“txt”字段

在Lua字符串中嵌入变量的简单方法是使用:

如果您只想在文件开头插入文本,也可以直接在Lua中插入,而无需sed:

local function prependToFile(filename, txt)
    local hnd = io.open(filename, "rb")
    local s = hnd:read "*a"
    hnd:close()

    local hnd = io.open(filename, "wb")
    hnd:write(txt, "\n", s)
    hnd:close()
end

local datafile = 'log.txt'
local date = os.date("%d-%m-%Y,%H:%M:%S")
prependToFile(datafile, date .. ",sameText")
可能将(sed内部)日期
更改为
$date
会有所帮助。这个变量的名字也很混乱,考虑使用其他的名字。<代码> OS。执行(‘SED-我’1i’…日期…..,StEXTEXT‘…数据文件’< /代码>可能改变(内部SED)<代码>日期<代码>到<代码> $DATE < /代码>可能有帮助。这个变量的名字也很混乱,考虑使用其他的名字。<代码> OS。执行('SED- I’1i…日期…..,StEXTEXT…'DATAFILE ] < /代码>
local function prependToFile(filename, txt)
    local hnd = io.open(filename, "rb")
    local s = hnd:read "*a"
    hnd:close()

    local hnd = io.open(filename, "wb")
    hnd:write(txt, "\n", s)
    hnd:close()
end

local datafile = 'log.txt'
local date = os.date("%d-%m-%Y,%H:%M:%S")
prependToFile(datafile, date .. ",sameText")