文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@hxy tmp]# cat file
[aa]
aa1
dd2
dd3
dd4
[bb]
dd5
dd6
dd7
xx8
dd9
[cc]
ee2
334
ghdfg7
uuu
ooo7
sdsd
ggg
gogo
pp[
gggs
ssss
jjjj
aaaa

我现在的需求是提取出[bb] 到[cc]之间的所有行

1
2
3
4
5
6
[bb]
dd5
dd6
dd7
xx8
dd9

1
2
3
4
5
6
7
[root@hxy tmp]# awk -v RS= '/^\[bb]/' file
[bb]
dd5
dd6
dd7
xx8
dd9

这个怎么理解呢?

-v 大家度知道是指定变量的

所以这个-v一是同样的指定了RS=

等于空就是默认的输入分隔符为'\n'既是空行

so我们这里的文件就会被分为3行了

1
2
3
4
[root@hxy tmp]# awk -v RS= '{print $1,$2,$3,$4,$5,$6,$7}' file
[aa] aa1 dd2 dd3 dd4
[bb] dd5 dd6 dd7 xx8 dd9
[cc] ee2 334 ghdfg7 uuu ooo7 sdsd

这样是不是好理解多了,我想打印哪一行就打印哪一行就行了

1
2
3
4
5
6
7
[root@hxy tmp]# awk -v RS= 'NR==2 {print}' file
[bb]
dd5
dd6
dd7
xx8
dd9

这里的 NR==2 {print} 和 /^\[aa]/ 是同样的结果

第一个是明确了打印第二行

第二个是匹配[aa]然后打印[aa]所在的行,达到同样的结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@hxy tmp]# awk -v RS= 'NR==2,NR==3 {print}' file
[bb]
dd5
dd6
dd7
xx8
dd9
[cc]
ee2
334
ghdfg7
uuu
ooo7
sdsd
ggg
gogo
pp[
gggs
ssss
jjjj
aaaa

这样打印出来的是第二个域到第三个域之间的结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@hxy tmp]# awk -v RS= 'NR==1,NR==3 {print}' file
[aa]
aa1
dd2
dd3
dd4
[bb]
dd5
dd6
dd7
xx8
dd9
[cc]
ee2
334
ghdfg7
uuu
ooo7
sdsd
ggg
gogo
pp[
gggs
ssss
jjjj
aaaa

而这样打印的是第一个域到第三个域之间的结果

如果我只想打印第一域和第三域呢?

[root@hxy tmp]# awk -v RS= 'NR==1;NR==3 {print}' file

[aa]

aa1

dd2

dd3

dd4

[cc]

ee2

334

ghdfg7

uuu

ooo7

sdsd

ggg

gogo

pp[

gggs

ssss

jjjj

aaaa

这样就行了.

如果有其他的要求,在干要求改就行了到此实验结束.

本文转自  Forande  51CTO博客,原文链接:http://blog.51cto.com/853056088/1932477

awk 以列为域提取文件内容相关推荐

  1. Asp.NET大文件上传组件开发总结(二)---提取文件内容

    不知地震什么时候结束,为了给老婆小孩守夜,看来还不能睡,那就把第二篇也写了吧,只是不知对大家有没有用哟. 为了提供文件内容,我们需要首先需确定客户请求中发送的有文件内容,然后确定文件内容的位置.这部分 ...

  2. 【转】Asp.NET大文件上传组件开发总结(二)---提取文件内容

    为了提供文件内容,我们需要首先需确定客户请求中发送的有文件内容,然后确定文件内容的位置.这部分对应的代码如下: 1HttpApplication app = sender as HttpApplica ...

  3. 如何使用Tika提取文件内容

    如何使用Tika提取文件内容 什么是Tika? Tika全名Apache Tika,是用于文件类型检测和从各种格式的文件中提取内容的一个库. Tika使用现有的各种文件解析器和文档类型的检测技术来检测 ...

  4. 提取文件内容需要什么工具?

    File Juicer for Mac是一款简单好用的文件提取工具,不仅可以提取word.ppt等档案中的图片文件,还可以可提取PDF文件中的图片文档,使用简单! 功能 File Juicer Mac ...

  5. 搜索文件内容的几种方式

    搜索文件的几种方式: 一.提取文件, 插入数据库text,使用like 查询. 使用poi或PageOffice提取文件内容文字 缺点:只适合数据量不大的情况 二.提取文件, 插入数据库text,创建 ...

  6. Linux追加文件内容并在内容前加上该文件名(awk, FILENAME功能妙用)

    假如有三个文件file1.txt,file2.txt,file3.txt 每一个文件内容如下: 现在打算提取每一个文件字符为16的行,打印该行所有的内容.以及该文件名,并追加到file4.txt,则可 ...

  7. linux awk合并文件内容,awk实际应用:文本合并

    请使用awk命令将如下两份文件中名字相同的两行合并起来 [root@localhost ~]# cat 1.txt 韩海林 21岁 海林韩 23岁 韩林海 22岁 林海韩 24岁 [root@loca ...

  8. 2019-8-20 [Linux] 6.Shell的基本操作 查看 改变 列出 阅读开头/结尾 循环查看 阅读工具less 查找文件内容 文本分析工具AWK 文本编辑工具SED文件find 帮助man

    文章目录 6.linuxShell的基本操作 6.1 查看目录和文件 6.1.1 显示当前目录:pwd 6.1.2 改变目录:cd 6.1.3 列出目录内容:ls 1) 查看列表信息 以及详细信息 2 ...

  9. Linux 文件管理-文件内容-分析工具【awk】脚本处理文本和数据-Linux 文本操作三剑客

    1. awk简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是li ...

最新文章

  1. c# 逆转数组元素的排序
  2. JS修改CSS的三种方式
  3. Deming管理系列(2)——怎样开发度量能力
  4. 深入理解C++的动态绑定和静态绑定
  5. 设计灵感|单色配色,如何让海报更出彩?
  6. python qq邮箱发邮件_Python用QQ邮箱发邮件的实例教程
  7. CSDN帐号管理规范
  8. 按键精灵根据图片查找技巧
  9. Word2Vec模型详解
  10. Echarts中调色盘的作用
  11. 国家AAAAA级旅游景区数量统计
  12. Sequence (矩阵快速幂+快速幂+费马小定理)
  13. eclipse代码文件误删恢复方法
  14. 微信小程序 - 打开跳转 H5 网页链接(小程序内打开网页)
  15. 如何控制舵机的速度?
  16. 【CuteJavaScript】GraphQL真香入门教程
  17. 洗牌-牛客 第一行一个数T(T ≤ 100),表示数据组数。对于每组数据,第一行两个数n,k(1 ≤ n,k ≤ 100),接下来一行有2n个数a1,a2,...,a2n(1 ≤ ai ≤ 1000
  18. 云端3d虚拟现实展制作
  19. Vite+Vue3+TypeScript
  20. RHCE6.0那点事----仅供参考

热门文章

  1. POJ-1837 Balance
  2. RedHat使用163源
  3. Java局部变量final
  4. divideSentence
  5. DateTime 的24小时和12小时制
  6. 桌面虚拟化之呼叫中心语音应用
  7. 浅析linux容器--Docker
  8. c语言进位程序,c语言中如何做带进位位移
  9. oracle修改c root,从新发现Oracle太美之root.sh
  10. 【C语言】 strstr查找子字符串函数以及模拟实现讲解