加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如何使用sed从文件中打印行,其中行号存储为变量

发布时间:2020-12-15 22:08:20 所属栏目:安全 来源:网络整理
导读:我正在尝试打印出我使用行号确定的文件的特定部分,但行号会每天变化,所以我需要能够获取行号,将它们存储为变量,然后使用sed从存储的文件中剪切线条. 这是我到目前为止所拥有的: start-loader是一个包含我想要打印的行的文件,但也包含很多垃圾. 我可以使用se
我正在尝试打印出我使用行号确定的文件的特定部分,但行号会每天变化,所以我需要能够获取行号,将它们存储为变量,然后使用sed从存储的文件中剪切线条.

这是我到目前为止所拥有的:

start-loader是一个包含我想要打印的行的文件,但也包含很多垃圾.

我可以使用sed -n ‘93,109p’启动加载器打印出我需要的内容,但我想要做的是:

sed -n '$FL,$LFp' start-loader

变量是我存储的行号.

我知道以上不是正确的语法,从很多关于这个问题的研究,但我使用的一切都返回错误或不起作用.我已经尝试过双引号,单个然后双重变量,大括号变量,以及其他一些东西以及许多不同的语法样式.谁会碰巧知道我怎么能正确地做到这一点?

解决方法

您需要以某种方式将p命令与上一行变量分开.以下任何一种都应该有效:

$sed -n "$FL,${LF}p" start-loader
$sed -n "$FL,$LF p" start-loader

如果没有分离,shell将尝试扩展不存在的变量LFp,从而导致将空字符串传递给sed并导致语法错误.

您还需要使用双引号而不是单引号来允许变量在sed看到之前展开.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读