awk查找指定行指定列的数据 并输出到文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk查找指定行指定列的数据 并输出到文件相关的知识,希望对你有一定的参考价值。

1、打开一个文件,如下图所示。

2、然后点击右下角的行,列,如下图所示。

3、接下来会弹出一个界面,如下图所示。

4、我们直接输入数字就可以了,如下图所示。

5、接着光标就跳转到指定的数字行了。

6、最后底下也变了,如下图所示。

参考技术A

1、首先awk截取指定域,在日志的处理和监控中,经常会截取指定的字符来进行后续处理。

2、awk中的判断输出,awk -F: 'if($3>=1000)print "CommonUser:",$1' /etc/passwd如果uid大于等于1000,输出用户名,否者不输出,-F后边跟字符的分隔符,不加-F默认空格分隔。

3、NR 表示文件中的行号,表示当前是第几行,NF 表示文件中的当前行列的个数。

4、在 awk 中使用数学运算,经常会遇到需要统计相同key的value总和。

5、最后在 awk 中使用正则表达式 //中是要匹配的字符,awk '/^math/ print '  123.txt--------匹配以math开头的行。

参考技术B 每一列的表示方法以$开头,如$1代表第一列。要答应制定的列,有一个比较容易理解的编程命令:awk 'print$1"\t"$2"\t"$5' input.txt > output.txt
上面的命令中,双引号中是一个tab键,代表将指定的列用制表符隔开。input.txt是输入文件,output.txt是输出文件。上面的命令就表示将input.txt中的第1,2,5列提取出来放入output文件中。
参考技术C 获取1.txt中第二行第三列的数据,输出到2.txt。
# cat 1.txt
1 2 3
4 5 6
7 8 9
# cat 1.txt|awk 'NR==2print $3' > 2.txt
# cat 2.txt
6
参考技术D cat a.log
1 2 3
1 2 3

cat a.log | awk 'print $2' >b.log

cat b.log
2
2

excel 输出指定行数据

现在有一万多行的数据,我有100个随机生成的数据a,b,c,d.......

现在要对应的输出第a,b,c,d行的数据另外成表
求大神指教
a,b,c,d等是行数

比如说a=22,就是说要输出第22行的数据
麻烦大牛们了

  1,打开源数据文件,把首行中的对应的数据,复制行到空白位置。

  2、选中J2单元格,单击编辑栏中的"插入函数“,如图所示。

  3、弹出”插入函数“对话框,设置其类别为”逻辑“,并选择列表框中的IF选项。然后确定。

  4、在弹出的”函数参数“对话框中,

  设置Logical_test参数为”I2=“”,将Value_if_true设置为“”,也就是空白内容。

  最重要的一步来了:

  将Value_if_false参数框中输入“VLOOKUP(I2,A2:B2846,2),然后确定。

  这个步骤是什么意思呢。就是用if函数判定I2单元格中的内容是不是不是空白。

  若是空白,那么J2单元格也是空白。

  若不是空白,就执行VLOOKUP函数。在A2:B2846区域中(因为源数据不改动,所以这里用的是相对引用)查找I2单元中的内容,找到后,在J2单元格中返回所找到的内容所在的行的第二列中的数据。

  5、经过第4步后,在I2单元中输入任意证券代码就会在J2单元中显示其行业了。那么,现在需要的是在I列粘贴进去我们需要的证券代码后,其后会出现源数据所对应的第一行中的内容。所以要接着第6步。

  6、选中J2单元格,注意是J2,不是I2哦.(I2是我们输入证券代码的地方),鼠标移动到单元格右下角,出现十字光标时,按住鼠标左键向右拖动到O2单元格。如图

  7、这个时候就会发现原来源数据中的C2-G2单元格中的内容就会自动填充到K2-O2单元格中。这个时候,如果我们需要的数据是按源数据中的数据从上到下排列的,就可以不用修改了。直接重复第6步中的方法,把J2-O2每个单元格下拉填充就完成了。如图示,先把需要的数据列复制到I列中,然后依次下拉填充。

  8、也就是搜索从A3到B2487区域中的内容。没有包含A2,所以我们输入000002在源数据中找不到。所以使用这个方法前,要先对需要的数据按源数据进行排序。不然,是不准确的。

  

参考技术A 比如你原数据在A、B两列,A列是“姓名”,B列是“年龄”,假设你现在在D列上随机生成了100个姓名,希望在E列上能自动引用这些姓名对应B列上的年龄。方法:在E1输入公式:
=vlookup(d1,a:b,2,)
将公式向下拉填充复制就可实现。

补充:假设你数据在A1:A10000,现在在C列随机生成100个行数,希望调用A列上对应这些数字行上的内容。可在D1输入公式:
=index(a:a,c1)
将公式向下拉填充复制就可以了。本回答被提问者采纳
参考技术B 1、比如原数据在A、B两列,A列是“姓名”,B列是“年龄”,假设现在在D列上随机生成了100个姓名,希望在E列上能自动引用这些姓名对应B列上的年龄。方法:在E1输入公式:
=vlookup(d1,a:b,2,)将公式向下拉填充复制就可实现。
2、补充:假设数据在A1:A10000,现在在C列随机生成100个行数,希望调用A列上对应这些数字行上的内容。可在D1输入公式:=index(a:a,c1),将公式向下拉填充复制就可以了。
参考技术C 你好:如果截图,并配上行列标,会比较好解决。
如果有行号,那更好办,可以用这个公式;
如数据要sheet2的A到F,你自动生成的行号在a1,可以在sheet1的b1输入:=index(sheet2!$a:$f,$a1,coulumn(a1),1)然后公式右拉,下拉。
实在不行,你可以另存一个,删掉敏感信息,传一个表过来,好分析。(759534733@qq.com)
参考技术D a,b,c,d是行数吗?

用vbs吧 行复制就可以了了

以上是关于awk查找指定行指定列的数据 并输出到文件的主要内容,如果未能解决你的问题,请参考以下文章

awk 按照指定行名顺序提取数据

查找指定列的重复行[重复]

shell,计算指定行的和,计算指定列的和

awk(二) 输出/删除指定列

EXCEL中在某列中查找指定文本,返回行对应另一列的数据用啥函数

linux提取指定字符的行列并生成新文件(awk命令)