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] > } > }‘ tmpa ‘1‘,‘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] > } > }‘ tmpb ‘1‘,‘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
原文:https://www.cnblogs.com/chenzechao/p/11377435.html