Linux 中awk 批量提取多个非连续的行

 

001、 Linux 中awk命令批量提取多个非连续的行

复制代码
[root@PC1 test]# ls
a.txt  lines.list
[root@PC1 test]# cat a.txt                  ## 测试文件
eree fff 1
saaf eee 2
xxxe kkk 3
zzzz mmm 4
2222 www 5
jjjj 888 6
oooo 999 7
wwww 666 8
aaaa 666 9
wwww 444 10
mmmm 333 11
qqqq 222 12
[root@PC1 test]# cat lines.list             ## 提取的行
3
5
9
11
[root@PC1 test]# awk '{if(NR == FNR){ay1[$0]} else if($3 in ay1) {print $0}}' lines.list a.txt     ## 提取程序
xxxe kkk 3
2222 www 5
aaaa 666 9
mmmm 333 11
复制代码

 

002、常规方法

复制代码
[root@PC1 test]# ls
a.txt  lines.list
[root@PC1 test]# cat a.txt                ## 测试文件
eree fff 1
saaf eee 2
xxxe kkk 3
zzzz mmm 4
2222 www 5
jjjj 888 6
oooo 999 7
wwww 666 8
aaaa 666 9
wwww 444 10
mmmm 333 11
qqqq 222 12
[root@PC1 test]# cat lines.list           ## 提取的行
3
5
9
11
[root@PC1 test]# rm -f result.txt; for i in $(cat lines.list); do sed -n "$i"p a.txt >> result.txt; done     ## 主文件大的时候速度慢
[root@PC1 test]# ls
a.txt  lines.list  result.txt
[root@PC1 test]# cat result.txt           ## 结果文件
xxxe kkk 3
2222 www 5
aaaa 666 9
mmmm 333 11
复制代码

 。

 

posted @   小鲨鱼2018  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2023-02-09 linux 中设置root用户无法删除的文件
2023-02-09 linux 中设置root用户无法删除的文件
2023-02-09 linux 中如何给普通用户增加管理员权限
2023-02-09 linux 中同时输出一组数值的最大值和最小值
2023-02-09 linux centos中利用命令行发送邮件
点击右上角即可分享
微信分享提示