这个awk程序输出结果为什么和想象中的不太一样 10C

数据
23
56
89
78
76
65
56
34
41
19
16
67
awk '{ T[NR%3]=T[NR%3] " " $0 }
END { print substr(T[1],3)

print substr(T[2],3)
print substr(T[0],3)}' ljhsc3
输出:
3 78 56 19
6 76 34 16
9 65 41 67
为什么我的输出第一列会是个位数啊,数据文件中明明都是两位数的,谢谢各位大神。

0

1个回答

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
awk 将结果输出到不同文件
转载▼输入文件 # cat 1.txt 1 1 2 2 2 2 3 3 4 4 5 5 6 6 5 5 5 5 5 5 awk 文件: test.sh #/bin/bash filename=$1 echo $filename #BEGIN{file1=a;file2=b;file3=c} file1=a file2=b file3=c
linux下AWK实现取输出结果第一行
awk 'NR==1'  
Shell-awk输出的列输入数组
array=($(ps -ef|grep tlda |awk '{print $2}'))echo ${array[@]}
awk里面执行shell命令
先把文件列表存在filename文件中 先 awk '{system("rm $0")}' filename -------WRONG 因为对于 system来说 $0 不再是某行全部的内容,而是 “sh” , 上面的命令相当于执行“ sh rm sh” 然后 awk '{cmd="rm "$0;system(cmd)}' filename ----OK 下
程序每次运行结果不一样
<br />今天做软件更新图标的时候,遇到的一个看起来很奇怪的问题,便是显示的图标每次都不一样。后来查了半天,发现是自己写的代码里面,寻找图标的索引值没有初始化的结果,所以导致每次看起来的图标均不一样。<br />这些细节问题看似很不经意,却比较容易引用未知的错误。告戒自己以后写代码一定要养成好习惯!做一次宝贵的经验记下吧。
基础加强的学习
---------------------- android培训、java培训、期待与您交流! ----------------------                  基础加强部分的学习,虽然视频数量不多,但是所讲的内容较深, 该部分视频还应该多抽时间学习。      首先学习完后要按照张老师的要求,对英文简写要多熟记,比如 IDE,java EE,等等这些简写,要能写出英文
awk使用shell变量,shell获取awk中…
这里提到awk,相信写shell的朋友都会接触到。AWK 是一种用于处理文本的编程语言工具。AWK 提供了极其强大的功能: 可以进行正则表达式的匹配 样式装入 流控制 数学运算符 进程控制语句 内置的变量和函数 可以把awk看作一门完全的程序设计语言,它处理文本的速度是快得惊人的。现在很多基于shell 日志分析工具都可以用它完成。设计简单,速度表现很好。 涉及到以上六个方面内容,我会在以后
这个世界没有想象中的那么好,但似乎......也没那么糟
这个世界没有想象中的那么好,但似乎......也没那么糟 https://v.qq.com/x/page/d0513x1cy39.html 故天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。 ...
awk更新现有文件内容并输出到新文件中
修改兑换码对应的奖励 awk -F',' '{ if(substr($1,0,3) == "AJ4"){$4="100 1019 1|1 2 20000|101 99 20"; print >> "/home/test/redeem_data_rlt/"FILENAME} }' 4[0,1,2,3]/t_whole_redeem_*.csv
使用awk将两字段合并
有文档a.txt如下: 861399 4444623*** 861339 4444660*** 861339 4444660*** 861339 4444671*** 861339 4444672*** 861339 4444690*** 861339 4444692*** 861530 4444863*** 使用awk将两列合并,并去掉第一列的86及第二列的444,结果如下:
awk命令基本处理 -- shell
awk 逐行扫描输入 ( 可以是文件或管道等 ) awk 将读入的记录分割成数个字段: 1、$0 表示整条记录,第一个字段放入发量 $1 中,第二个放入发量 $2 中。 2、字段分隔符可以通过选项 -F 指定,否则使用缺省的分隔符,通常为空格或Tab。 ARGC:命令行参数个数 ( 实际就是输入文件的数目加 1 ) ARGIND:当前被处理的文件在数组 ARGV
awk 输出到不同文件
输入文件 # cat 1.txt 1 1 2 2 2 2 3 3 4 4 5 5 6 6 5 5 5 5 5 5 awk 文件: test.sh #/bin/bash filename=$1 echo $filename #BEGIN{file1=a;file2=b;file3=c} file1=a file2=b file3=c if [
这里和我的想象不太一样!
我觉得这里应该讲解的是各种文件格式的详细文档,不仅仅是用什么软件察看这么简单。毕竟我们是程序员不仅仅是用户。我们更需要关心的可能是如何去解析这些文档!
awk输出相同列的前两行和后两行
要求打印,第一列相同的头两行和后两行: file AX  BX   1 AX  BX   2 AX  BX   1 AX  BX   8 AX  BX   1 AX  BX   3 AX  BX   5 CX  BX   1 CX  BX   0 CX  BX   1 CX  BX   6 CX  BX   9 EX  BX   1 EX  BX   a EX  B
awk 输出值到多个变量
将awk的多个输出值同时赋值给多个变量
将awk赋值值给变量
result='week(now(),-1) 49';   var=`echo $result|awk '{print substr($result,16,3)}'`;   echo $var;      SYSFILE_NAME=`echo "$CONTROL_FILE" | awk -F"." '{print $1}' | awk -F"/" '{print $NF}'`;  
这个输出和想象的不一样?为什么?
#includernrnclass Base rnrnpublic: rn void fn(int x)rn rn cout<<"In Base class, int x = "<< x <
awk去重总结
awk去重总结: 翻看了http://blog.chinaunix.net/uid-2598756-id-293231.html文章,总结下awk去重 file1 aaa 111 bbb 222 ccc 333 ddd 444 aaa 111 bbb 222 方法一: awk ‘++a[$0]==1{print $0}’  file1 or  awk ‘{if(++a[$0]=
linux下awk以及重定向命令的使用
1 awk命令的使用
使用 awk 处理 nmap 扫描结果,求出存活主机IP
在使用 nmap 扫描时,得到如下结果: 结果1: Interesting ports on 172.22.43.23: PORT   STATE SERVICE 22/tcp open  ssh Interesting ports on 172.22.43.24: PORT   STATE SERVICE 22/tcp open  ssh Interesti...
Awk实现句子按词反序输出
目标: 将文件中每行内容按照单词反序输出,词之间是按空格区分的,要求转换后词内字符顺序不变,句子顺序不变 例:输入Veve is a cat  输出 cat a is Veve 看到网上很多是C++实现的,其实用awk的话处理还是比较简单的: awk 'BEGIN{ORS=" "} {for(i=NF; i>0; i--){if(i==NF) print"\n"$i; e
在awk中执行system命令------太有用了
有这样一个临时需求: 在a.txt文件中有一万行字符串, 而二进制文件test能解密任何一行, 格式为./test decrypt xxx,  现在要把a.txt的所有行解密出来, 存放在b.txt, 怎么搞?         我一开始的思路是: 写程序逐行读取a.txt, 然后在程序中循环执行system("./test decrypt xxx"),  看看, 这是多个SB的事情啊。 为什么不
awk 输出到多个文件 多路输出
awk中经常需要根据不同条件,将内容输出到不同文件中。写了个简单的awk小脚本,可以满足这个需求。#!/bin/awk -f{ if(NR==FNR) {a[$0]++} else {if($1 in a) print $0 >> "user_agence" else print $0
gawk(awk)的用法案例
本文首先简单介绍一个gawk和awk的区别,然后是一点基本使用流程,最后是自己做的一个分析数据文件的脚本代码,供大家参考。另外想了解基本流程的入门知识的可以下载附件pdf格式的awk入门手册。 祝我们进步。 GAWK和AWK: AWK 是该编程语言本身的名称,它编写于 1977 年。其名称是三个主要作者的姓的首字母缩写:Drs. A. Aho、P. Weinberger 和 B. Kerni
如何在shell脚本文件中获取awk的值, 存于变量中?------来看看shell中eval的用法
        遇到了, 折腾了一会儿, 所以记一下:        错误1:#!/bin/bash a=&quot;hello world&quot; b=$a | awk '{print $2}' echo $b       错误2:#!/bin/bash a=&quot;hello world&quot; b=echo $a | awk '{print $2}' echo $b      正确姿势:#!/bin/bash a...
awk将相同键值的字符串拼接一起输出
awk将相同键值的字符串拼接一起输出。每一行中第一列的数据是键,其余列为值。 文本1.txt中的内容是 abc 1 2 3 abc a1 b1 c1 abc a2 b2 c2 abd a2 b2 c2 hello hello_value1 hello_value2 hello hello_value3 hello_value456 awk '{key=$1;$1=&quot;&quot;;value=$...
Linux Shell-awk中输出单引号(')
1 场景 在shell脚本中,单引号‘'’是一个特殊字符,特别是当使用awk命令输出单引号,即使使用/\'/转义都无法输出。 2 分析 尝试使用单引号的八进制编码来替代它进行输出: awk -F ':'  '{print &quot;test.sh \047&quot;$1&quot;\047;&quot;}' filename; 上述示例filename中存储的为各个参数,输出为: test.sh 'a'; test.sh 'b...
为什么这个循环输出结果都是一样的
我用的是WINTC编译运行的rnrn这两个的用法的输出结果全是 b,为啥啊。要怎么改能能输出正确啊。rnchar *funstest(int i)rnrn if (i=0)rn return "a";rn if (i=1)rn return "b";rn if (i=2)rn return "c";rn if (i=3)rn return "d";rn if (i=4)rn return "e";rnrnrnint main(void)rnrn int i;rn for (i=0;i<5;i++)rn rn printf("%s \n",funstest(i));rn rn getch();rn return 0;rnrnrnrn===============================================rnchar s[1];rnint funstest(int i)rnrn if (i=0)rn rn strcpy(s,"a");rn return 0;rn rn if (i=1)rn rn strcpy(s,"b");rn return 0;rn rn if (i=2)rn rn strcpy(s,"c");rn return 0;rn rn if (i=3)rn rn strcpy(s,"d");rn return 0;rn rn if (i=4)rn rn strcpy(s,"e");rn return 0;rn rnrnrnint main(void)rnrn int i;rn for (i=0;i<5;i++)rn rn funstest(i);rn printf("%s \n",s);rn rn getch();rn return 0;rn
awk循环
循环的功能是:当测试表达式的条件为真时,重复执行表达式后面的语句。循环常常被用来对记录中的每个字段重复执行某种操作,或者在END块中用来循环处理某个数组中的所有元素。awk有3种类型的循环:while 循环、for循环和特殊for循环。 1. while循环 使用while循环的第一步是给一个变量设初值,然后在while表达式中测试该变量。如果求得表达式的值为真(非0),则进入循环体执
这个为什么结果一样
(1)返回0rnif 1 not in (null)rn select 1rnelse rn select 0rnrn(2)返回0rnif 1 in (null)rn select 1rnelse rn select 0rnrn为什么返回两次全返回0
awk-语法深入-记录、字段分隔符
awk规定,对于文本文件,默认情况下,一条记录对应一行,即记录之间的默认分隔符是换行符;而一条记录又可以分为多个字段,默认字段分隔符为空格。    输入记录分隔符变量:RS(record sign)    输出记录分隔符变量:ORS(output record sign)    字段分隔符变量:FS(field sign)    输出字段分隔符变量:OFS(output f
awk 去除空行,打印输出引号
cat logo.txt |awk -F '=' '{if(NF>0) print "'\''"$1"'\''" ","}' 输出单引号"'\''" 去除空行 if(NF>0) print $0
awk 打印输出引号 shell变量匹配
echo 1|awk '{print &amp;amp;quot;\&amp;amp;quot;&amp;amp;quot;}' # 打印双引号 echo 1|awk '{print &amp;amp;quot;'\''&amp;amp;quot;}' # 打印单引号 IP=127.0.0.1 awk '{if($1==&amp;amp;quot;'$IP'&amp;amp;quot;) print $0}' /etc/hosts awk '{if($1~/'$IP'/) print $0}' /etc
AWK改变输入输出分隔符实例分析
awk默认从STDIN接受数据,打印文本到STDOUT。 awk的默认输入和输出分隔符: FS : 输入字段分隔符,默认空格。 RS : 输入行分隔符,默认\n。 OFS : 输出字段分隔符,默认空格。 ORS : 输出行分隔符,默认\n。   实例:通过改变默认的内置变量使多行变成一行 file.txt  ( 每个人的信息条数不确定,区分是一个空行
awk grep 立马刷缓存 结果定向入文件立即生效
awk grep 立马刷新结果至文件中
awk 先按行相减,然后排序输出
awk 先按行相减,然后排序输出,第一行不输出。然后排序输出 grep "TotalFileOps" ./somefile | awk 'BEGIN{prev=0; curr=0}{curr=$4; if (prev !=0 ) print $1" " $2" "$3" "$4 " " (curr-prev); prev=curr}' | sort -n -k 5 g
帮帮我看看这个程序运行结果为什么不像想象中的一样?
程序的目的是输入10个记录,包括学号,姓名,性别,年纪,然后用插入排序法对学号排序。然后输出这个链表。不好意思,我对排序还刚学,算法就太逊了。rn#includern#includernusing namespace std;rnstruct Studentrnrn long number_;rn string name_;rn char sex_;rn int age_;rn Student *next_;rn;rnrnStudent* CreateList();//创建链表rnStudent* GetNode(Student*,int);//获取链表指定结点的地址rnvoid Sort(Student*);//插入法排序rnvoid ShowList(Student*);//输入排序后的结果rnvoid Destroy(Student*);//撤销动态内存分配空间rnrnvoid main()rnrn Student * p=CreateList();rn Sort(p);rn ShowList(p);rn Destroy(p);rnrnrnStudent* CreateList()rnrn Student * head,*p,*rear;rn int i;rn head=0;rn for(i=1;i<=10;i++) //输入10个记录rn rn p=new Student;rn cin>>p->number_>>p->name_>>p->sex_>>p->age_;rn if(head==0) head=p;rn else rear->next_=p;rn rear=p;rn rn p->next_=0;rn return head;rnrnrnStudent* GetNode(Student* head,int i)//取得第i个结点的地址rnrn int j;rn for(j=0;head->next_&&jnext_;rn if(j!=i) //程序运行后就输出Error!了rn cout<<"Error!";rn exit(0);rn rn else return head;rn rnrnrnvoid Sort(Student *head)rnrn Student *inserter;rn int index;rn for(int i=1;i<10;i++)rn rn inserter=GetNode(head,i);rn long numberTemp=inserter->number_;rn string nameTemp=inserter->name_;rn char sexTemp=inserter->sex_;rn int ageTemp=inserter->age_;rn index=i-1;rn Student * temp1=GetNode(head,index+1);rn Student * temp0=GetNode(head,index);rn while(index>=0&&inserter->number_number_)rn rn temp1->number_=temp0->number_;rn temp1->name_=temp0->name_;rn temp1->sex_=temp0->sex_;rn temp1->age_=temp0->age_;rn index--;rn rn temp0->number_=numberTemp;rn temp0->name_=nameTemp;rn temp0->sex_=sexTemp;rn temp0->age_=ageTemp;rn rnrnrnrnvoid ShowList(Student * head)rnrn cout<<"The records are as follows:\n";rn while(head)rn rn cout<number_<name_<sex_<age_<next_;rn rnrnrnvoid Destroy(Student* head)rnrn Student * pTemp;rn while(head)rn rn pTemp=head;rn head=head->next_;rn delete pTemp;rn rnrn
shell awk转成数组
在编写shell时,需要将awk转换成合适的数组类型: ( $(echo `cat $file | awk '{print $1}'`))
使用awk和grep进行数据抽样比较
在进行数据抽样时,我们关注所抽取的数据在整体数据中分布的均匀性。 最简单的就是均匀抽取,即每隔几行选取一行。 比如,数据文件较大时,每隔10行或者每隔100行进行抽取。   假如数据文件还是“msg” 我们每隔10行取一行,有两种方法:   方法1:nl+grep   nl msg | grep -P '1\t' &amp;gt; target_file   方法2:awk   ...
在awk中用for (var in array)遍历数组
       一直习惯用C的语法来写awk中的代码,所以总爱用for (i=1; i &amp;lt;= maxindex; i++)的方式来遍历数组。前些天无意中看到了awk中特有的for (var in array)也可以实现该功能,便欣然采用,并想当然地以为这不过是前一种for的简化形式,直到发现以下代码段总是无法按我预想的方式运行:for (i = 1; i &amp;lt;= nf; i++) { ...
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java的一些学习这个。 有产品经理这个课程吗