从第 1000 行开始 sed,直到文件在我的代码中不起作用



我有以下功能。我希望能够在 args$3从第 1000 行发送的文件中添加每一行,但由于某种原因,当我运行以下函数时,它似乎不起作用。

该函数接受三个参数,第一个是行中开始从$1添加数字的位置,arg$2是要添加的数字,arg$3是文件名。我在 sed 命令中输入了 1000,但它不起作用。有人可以帮我找到问题吗?

function addusingsed {
len_of_val="${#2}"
insert_pos=$(($1 - 1))
sed -i -n '1000s/(.{'$insert_pos'})/1'$2'/' "$3"
}

sed 命令前的单个数字告诉 sed 仅在该行上应用该命令。要处理范围,您需要一个逗号分隔的对(1000,2000s/等(,表示开始和结束行(包括(,并使用$表示最后一行的地址。

此外,就目前而言,由于-n选项,您将不会获得任何输出,除非明确请求,否则该选项会禁用输出。可能会删除它 - 尝试:

sed -i '1000,$s/(.{'$insert_pos'})/1'$2'/' "$3"

相关内容

最新更新