
如果一个atxt文件中有一行数据,每个用空格隔开的:
1 2 5 23 4 77 23 4 6
那么可以用awk计算一行的数据求和
awk '
{
for (i=1; i<= NF; i++) sum += $i;
print sum;
}
' atxt
就会输出一行的求和结果。如果有多行的话,上面的程序会输出每一行的求和结果。
如果多个内容是与关系,可以多个grep用管道相连,是或关系,可用正则式
如grep '\(ab|cd\)' atxt 是查包含 ab或cd的行, grep 'ab' atxt | grep 'cd' 是查包含ab和cd的行
要将结果赋到变量 a=`grep '\(ab|cd\)' atxt ` 就行了
在python里就相当好办了,用不着grep啦,字符串的find函数就行啦
所有的编程书籍都是通过一个“Hello world!”简单程序入门,作为借鉴,本文也采用此方法带大家入门。现在,在当前目录下建立一个文本文件hellotxt,内容如下:
Hello world!
在命令行中输入以下命令:
$ awk '{ print }' hellotxt
执行后hellotxt文件的内容显示在屏幕上。编写并且执行awk程序的方法很简单,如上所示,花括号内的是程序代码,后面的hellotxt为指定的输入文件。awk是一种行处理程序,执行awk时,它依次对输入文件中的每一行执行花括号中的代码,如上面的例子,就是对hellotxt中的每一行执行print命令。所有输出都发送到stdout,最后在屏幕上显示的结果为“Hello world!”。
上面的例子是将脚本作为命令行自变量传递给awk,我们也可以把脚本写入一个外部文件,然后通过-f选项向awk传递这个脚本文件。例如编写脚本文件helloask如下:
{ print }
然后通过如下方式执行:
$ awk -f helloawk hellotxt
这种编写独立脚本文件的方式应用在多行、比较复杂的程序上,非常合适,而且,在后面你还将看到,这种方式还可以让你非常方便地使用附加awk功能。
背景:可能我们会遇到获取Linux命令执行结果的某一列或某一行的信息。
awk -F '\t' '{print $1}' nametxt
其中-F表示分割符,本例为\t,$1表示第1列 ,$0表示全部。
ls -lrt | awk -F ' ' '{print $NF}'
好处:这种情况下不需要知道所获取信息在哪一列,直接取最后一列即可。
其中-F表示分割符,本例为空格,$NF表示最后一列,$(NF-1)表示倒数第二列。
awk 'NR awk 'NR==1,NR==4 {print}' file
行号等于1和4的打印出来
awk 'END {print}' nametxt
部分参考 >
以上就是关于shell如何将一行的数据求累加值网上很多awk都是加列,不是行。全部的内容,包括:shell如何将一行的数据求累加值网上很多awk都是加列,不是行。、在linux系统中 用shell 或者python 运行 grep 命令 但要查找的内容是很多个 并想把结果放到一个变量中、linux shell中awk的用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)