awk处理最后一行

awk '{if(NR>1)print a;a=$0}END{print a="b"}' file
awk 'BEGIN{getline a}{print a;a=$0}END{print a="b"}' file

  awk域匹配

echo "12 34" | awk '$1 ~ /1/'
echo "12 34" | awk '$1 ~ "1"'
如果把域放后面,记得字符串多的放~前面
echo "12 34" | awk '"123" ~ $1'
echo "12 34" | awk '"1" ~ $1' #没结果

  打印九九乘法法

awk 'BEGIN{for(n=1;n<=9;n++){for(i=1;i<=n;i++){printf i"x"n"="i*n" "}print}}'
每行后面多了一个空格
awk 'BEGIN{for(n=1;n<=9;n++){for(i=1;i<=n;i++){end=i==n?"\n":" ";printf i"x"n"="i*n end}}}'

  求最大值、最小值

awk 'max<$1{max=$1}END{print max}' file
awk '{min=(min=="" || min>$1)?$1:min}END{print min}' file

  头尾不变,中间行改动

awk '{a[NR]=$0}END{print a[1];for(i=2;i<NR;i++){print a[i]"a"}print a[i]}' file
awk '{a[NR]=$0}END{for(i=1;i<=NR;i++){if(i==1||i==length(a))print a[i];else print a[i]"a"}}' file
sed '1n;$n;s/$/a/' file
awk 'NR==1{print;next}{if(a)print a;a=$0"a"}END{print $0}' file
awk -vn=`grep -c . file` 'NR!=1&&NR!=n{$0=$0"a"}1' file

  

[root@66a awk]# cat file
"a":"1","b":"2","c":"3","d":"4","e":"5"
"a":"1","b":"2","d":"4"
"c":"3","e":"5"
[root@66a awk]# awk -f what.sh file
abcde
12345
12#4#
##3#5
[root@66a awk]# cat what.sh
BEGIN{FS="[:,]"}
{gsub(/"/,"")}
NR==1{
for(i=1;i<=NF;i+=2){printf $i;a[++n]=$i};
print ""
}
{
for(i=1;i<=NF;i+=2)b[$i]=$(i+1);
for(i=1;i<=n;i++){
if(a[i] in b)printf b[a[i]];
else printf "#"}
print "";
delete b
}

  

[root@66a awk]# cat a1
1 21
3 22
5 12
[root@66a awk]# cat a2
3 27
5 32
[root@66a awk]# cat a3
1 23
5 12
[root@66a awk]# awk -f what.sh a*
id a1 a2 a3
1 21 0 23
3 22 27 0
5 12 32 12
[root@66a awk]# cat what1.sh
{
a[$1","FILENAME]=$2;
b[$1];
}
END{
printf "id";
for(i=1;i<ARGC;i++)printf "\t"ARGV[i];
print "";
c=asorti(b);
for(i=1;i<=c;i++){
s=b[i];
for(j=1;j<ARGC;j++){
s=a[b[i]","ARGV[j]]?s"\t"a[b[i]","ARGV[j]]:s"\t0"
}
print s;
}
} [root@66a awk]# cat what2.sh
ARGV[1]==FILENAME{c[++n]=$1}
{ a[$1","FILENAME]=$2 }
END {
printf "id";
for(i=1;i<ARGC;i++)printf "\t"ARGV[i];
print "";
for (i=1;i<=n;i++) {
s=c[i];
for (j=1;j<ARGC;j++){
if(c[i]","ARGV[j] in a)s=s"\t"a[c[i]","ARGV[j]];
else s=s"\t0";
}
print s;
}
}

  

[shell] awk学习的更多相关文章

  1. shell awk学习3

    需求: 某文件aa的内容如下: a/p1/p2b/pp1c/ppp1/ppp3d/p1/p2/p3e/p1/p2/p3/p4 期望输出结果: a /p1 /p2 b /pp1 c /ppp1 /ppp ...

  2. 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式

    正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...

  3. Shell 脚本学习资料搜集

    Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...

  4. 转 shell脚本学习指南

    shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...

  5. Linux shell 菜鸟学习笔记....

    20171123 Linux shell 基础学习笔记1. shell 的开始 一般是 #!/bin/bash 通过 #! 来唯一指定使用的shell路径 其他的 # 都表示注释.2. shell 的 ...

  6. Linux 下shell 编程学习脚手架

    linux body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-t ...

  7. Linux 下Shell的学习

    1.Shell学习 1.什么是Shell    shell是一个命令解析器,在操作系统的最外层,负责和用户对话,将用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果.2.什么是shell脚本 ...

  8. Shell脚本学习指南笔记

    Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...

  9. shell语法学习

    [原文] 菜鸟笔记shell教程学习. 本篇博客只是记录shell的一些关键语法,主要是做一个记录,有些内容也是copy过来的,并不是一个完整的教程,想完整学习shell的同学可以前往 shell脚本 ...

随机推荐

  1. oracle 11GR2 单机打补丁PSU 11.2.0.4.180717

    上传补丁包,修改权限 su - oracle mdir /tmp/psu mv p6880880_112319_Linux-x86-64.zip /tmp/psu/mv databasepsu1807 ...

  2. Unity 4.7 导出工程在XCode10.1上编译报错

    Unity 4.7 导出工程在XCode 10.1上编译报错,而在XCode 9.3上是可以正常编译运行的.原因是Unity4.7所依赖的头文件和库文件在XCode10上没有了,解决办法如下,把XCo ...

  3. react 第一个组件 “hello world!”

    一:在src下面新建Welcome.js 二:在Welcome.js中使用类式写法: import React from "react" class Welcome extends ...

  4. vue keep-alive 不生效 以及前进 后退 对数据刷新和保留缓存操作

    https://blog.csdn.net/sinat_37255207/article/details/89373825 因为项目Vue router 连续嵌套了好几层 首先检查keep-alive ...

  5. jQuery属性操作之.val()函数

    目录 .val()实例方法的三种用法 .val()函数源码 调用形式:$('xxx').val(); 调用形式:$('xxx').val(value); 调用形式:$('xxx').val(funct ...

  6. spring boot2整合dubbox全注解

    前题 dubbox是dubbo的一个升级版,简单说就是本来dubbo是阿里开发的,现在阿里不维护了,当当网拿过去继续开发.本来阿里的dubbo维护到2.6版本,而再高版本的都是当当网维护的就叫成dub ...

  7. 树莓派3B+学习笔记:11、查看硬件信息

    1.查看CPU信息 cat /proc/cpuinfo 查看最后三行 如果只想查看最后三行,也可使用这个命令 /proc/cpuinfo lscpu 2.查看树莓派型号 cat /proc/devic ...

  8. Scrapy-Redis 空跑问题,redis_key链接跑完后,自动关闭爬虫

    首先解决爬虫等待,不被关闭的问题: 1.scrapy内部的信号系统会在爬虫耗尽内部队列中的request时,就会触发spider_idle信号. 2.爬虫的信号管理器收到spider_idle信号后, ...

  9. C语言基础篇(零)gcc编译和预处理

    导航: 1. gcc编译 2. 预处理 ----->x<------------->x<--------------->x<--------------->x ...

  10. gcd 模板

    声明 给 x,y 两个数,求 x,y 的最大公因数. 辗转相除法,直接套!!! function gcd(x,y:longint):longint; begin then exit(x) else e ...