首页 > 系统服务 > 详细

shell awk杂项

时间:2019-08-19 16:43:56      阅读:115      评论:0      收藏:0      [点我收藏+]

 

awk {
    for(i=0;++i<=NF;){
        a[i]=a[i]?a[i]",‘\‘‘"$i"‘\‘‘":"‘\‘‘"$i"‘\‘‘"
    }
}
END{
    for(i=0;i++<NF;){
        print a[i]
    }
} tmpb


[root@cc ~]# cat tmpa
1
2
3
4
5
6
7
8
[root@cc ~]# awk {
>     for(i=0;++i<=NF;){
>         a[i]=a[i]?a[i]",‘\‘‘"$i"‘\‘‘":"‘\‘‘"$i"‘\‘‘"
>     }
> }
> END{
>     for(i=0;i++<NF;){
>         print a[i]
>     }
> } tmpa1,2,3,4,5,6,7,8
[root@cc ~]# 
[root@cc ~]# cat tmpb
1 2 3
4 5 6
7 8 9
[root@cc ~]# awk {
>     for(i=0;++i<=NF;){
>         a[i]=a[i]?a[i]",‘\‘‘"$i"‘\‘‘":"‘\‘‘"$i"‘\‘‘"
>     }
> }
> END{
>     for(i=0;i++<NF;){
>         print a[i]
>     }
> } tmpb1,4,7
2,5,8
3,6,9

# 注意awk的文件不能单独一行

 

a[i]=a[i]?a[i] FS $i:$i
# 执行第一行时,读到1 2 3,因为a[i]为空,所以执行a[i]=$i,a[i]的值为1
# 执行第二行时,读到4 5 6,因为a[i]的值为"1",所以执行a[i]=a[i] FS $i,结果为"1 4"
# 执行第二行时,读到7 8 9,因为a[i]的值为"1 4",同步执行a[i]=a[i] FS $i,结果为"1 4 7"

 

awk打印单双引号

双引号:
awk {print "\""}        #放大:awk {print "  \"  "}
使用“”双引号把一个双引号括起来,然后用转义字符\对双引号进行转义,输出双引号。

单引号:
awk {print "\‘‘"}‘       # 放大: awk ‘{print  "    \       " }
使用一个双引号“”,然后在双引号里面加入两个单引号‘’,接着在两个单引号里面加入一个转义的单引号\,输出单引号。

 

设置超时结束

a=1
timeout ${a:-5} sleep

 

 

ref: https://blog.csdn.net/kouryoushine/article/details/92838138
ref: https://www.cnblogs.com/emanlee/p/3620785.html

shell awk杂项

原文:https://www.cnblogs.com/chenzechao/p/11377435.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!