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

bash – 在shell中提取两个行号之间的行

发布时间:2020-12-15 22:27:06 所属栏目:安全 来源:网络整理
导读:如何在 shell中使用sed或任何其他过滤器 假设我在两个变量$line1和$line2中有两个特定的行号,我想在这两行中提取这样的行,就像这样 cat my_file_path | command $line1 $line2 示例如果我的文件是: 1:BBB 2:CCCC 3:DDDD 4:EEEEE 如果我这样做,我的输出
如何在 shell中使用sed或任何其他过滤器

假设我在两个变量$line1和$line2中有两个特定的行号,我想在这两行中提取这样的行,就像这样

cat my_file_path | command $line1 $line2

示例如果我的文件是:

1:BBB

2:CCCC

3:DDDD

4:EEEEE

如果我这样做,我的输出应该是:

cat my_file_path | command 1 3

产量

bbb
cccc

解决方法

没有测试:

awk -v s="$line1" -v e="$line2" 'NR>s&&NR<e' file

您可以使用> =或< =来控制“包含/排他” 如果你想让你的shell var中的前导/尾随空格安全:

awk -v s="$line1" -v e="$line2" 'NR>1*s&&NR<1*e' file

(编辑:李大同)

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

    推荐文章
      热点阅读