亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
文本內(nèi)容處理
[打印本頁]
作者:
butterflyswim
時(shí)間:
2016-09-14 11:02
標(biāo)題:
文本內(nèi)容處理
文本
1.1.1.1 general/tcp GNU-Bash 1.0
2.2.2.2 general/tcp GNU-Bash 1.0
2.2.2.2 general/tcp HTTP-Brute 4.0
2.2.2.2 53/tcp VMSA-2015-0001:-VMware-vCenter-Server,-ESXi,-Workstation, 7.1
2.2.2.2 111/tcp VMSA-2015-0007:-VMware-ESXi-OpenSLP 3.0
3.3.3.3 general/tcp GNU-Bash-Environment 5.0
3.3.3.3 80/tcp HTTP-Brute-Force 2.0
......
......
目的
第一列ip相同的行,合并之后,用分號(hào)分隔
實(shí)現(xiàn)結(jié)果
1.1.1.1 general/tcp GNU-Bash 1.0
2.2.2.2 general/tcp GNU-Bash 1.0;general/tcp GNU-Bash;general/tcp HTTP-Brute 4.0;53/tcp VMSA-2015-0001:-VMware-vCenter-Server,-ESXi,-Workstation, 7.1;111/tcp VMSA-2015-0007:-VMware-ESXi-OpenSLP 3.0
3.3.3.3 general/tcp GNU-Bash-Environment 5.0;80/tcp HTTP-Brute-Force 2.0
......
......
作者:
moperyblue
時(shí)間:
2016-09-14 11:10
awk '{k=$1;$1="";a[k]=a[k]?a[k]";"$0:$0}END{for(i in a)print i,a[i]}'
復(fù)制代碼
作者:
butterflyswim
時(shí)間:
2016-09-14 11:19
回復(fù)
2#
moperyblue
謝大神
作者:
moperyblue
時(shí)間:
2016-09-14 11:23
sort file|sed -r ':a;N;/^((\S+\b).*)\n\2\s+/{s//\1;/;ta};P;D'
復(fù)制代碼
作者:
butterflyswim
時(shí)間:
2016-09-14 14:44
回復(fù)
4#
moperyblue
sed處理之后,沒有空格,很完美。awk處理之后有空格。速度哪個(gè)更快一點(diǎn)?
作者:
moperyblue
時(shí)間:
2016-09-14 15:12
回復(fù)
5#
butterflyswim
awk也可以去掉空格, 哪種快要你自己測才知道.
awk '{k=$1;$1="";sub(/\s+/,"",$0);a[k]=a[k]?a[k]";"$0:$0}END{for(i in a)print i,a[i]}'
復(fù)制代碼
作者:
sunzhiguolu
時(shí)間:
2016-09-14 15:37
perl -0pe 's{^(\S+)\N+\K((?:\n?^\1\N+\n)+)}{$s=$1;$2=~s/\s*$s\s*/;/gr}gem' f
復(fù)制代碼
作者:
sunzhiguolu
時(shí)間:
2016-09-14 15:44
perl -nle '{($k,$v)=split(" ",$_,2);push(@{$h{$k}},$v)}END{print "$_ ",join(";",@{$h{$_}}) for keys %h}' f
復(fù)制代碼
作者:
baby_神
時(shí)間:
2016-09-14 16:45
本帖最后由 baby_神 于 2016-09-14 16:47 編輯
awk '{b=$1;$1="\b";a[b]=a[b]?a[b]","$0:$0}END{for(i in a)print i,a[i]}' file
復(fù)制代碼
作者:
butterflyswim
時(shí)間:
2016-09-14 16:51
本帖最后由 butterflyswim 于 2016-09-14 16:52 編輯
回復(fù)
9#
baby_神
作者:
zy86416779
時(shí)間:
2016-09-15 21:49
請(qǐng)參考
[root@study tmp]# cat paste.awk
BEGIN{
f=0
}
{
if(f==0){
a[1]=$1
printf $0
getline
}
if(a[1]==$1){
printf ":" $2 " " $3 " " $4 " "
a[1]=$1
f=1
next
}
printf "\n"
printf $0
a[1]=$1
f=1
}
END{
printf "\n"
}
[root@study tmp]# awk -f paste.awk 1.txt
1.1.1.1 general/tcp GNU-Bash 1.0
2.2.2.2 general/tcp GNU-Bash 1.0:general/tcp HTTP-Brute 4.0 :53/tcp VMSA-2015-0001:-VMware-vCenter-Server,-ESXi,-Workstation 7.1 :111/tcp VMSA-2015-0007:-VMware-ESXi-OpenSLP 3.0
3.3.3.3 general/tcp GNU-Bash-Environment 5.0:80/tcp HTTP-Brute-Force 2.0
復(fù)制代碼
作者:
tolilong
時(shí)間:
2016-09-16 13:17
awk '{a="";for(i=2;i<=NF;i++){a=a" "$i}; if(b[$1]) {b[$1]=a";"a} else {b[$1]=a} }END{for(i in b) print i,b[i]}' filename
作者:
y2j16888
時(shí)間:
2016-09-19 11:12
回復(fù)
2#
moperyblue
大神能否解釋下這個(gè)腳本的含義?
awk '{k=$1;$1="";a[k]=a[k]?a[k]";"$0
0}END{for(i in a)print i,a
}'
前面的條件看不懂啊 , k=$1; 第1個(gè)字段的文本內(nèi)容賦值給K ? 之后又空格賦值給$1 ?
a[k]=a[k]?a[k] ????
作者:
moperyblue
時(shí)間:
2016-09-19 11:47
回復(fù)
13#
y2j16888
k => 作為臨時(shí)變量保存第一個(gè)域的值.
$1="" => 清空第一個(gè)域的值,如,1.1.1.1 general/tcp GNU-Bash 1.0 這行 執(zhí)行$1=""后,$0的值為" general/tcp GNU-Bash 1.0"
d=a>0?b:c 【三目運(yùn)算符】<=> if(a>0){d=b}else{d=c}
作者:
y2j16888
時(shí)間:
2016-09-19 15:06
回復(fù)
14#
moperyblue
awk '{k=$1;$1="";a[k]=a[k]?a[k]";"$0
0}END{for(i in a)print i,a
}'
但是就是不懂你寫的這個(gè)運(yùn)算符是啥意思 ? a[k]=a[k]?a[k]";"$0
0 ,能否解釋下, 后面的$0;$0 ,是打印全部?
作者:
butterflyswim
時(shí)間:
2016-09-19 15:50
回復(fù)
15#
y2j16888
a?b:c 如果a成立,就執(zhí)行b,否則執(zhí)行c
a[k]";"$0
0 第一個(gè)域和$0中間用分號(hào)隔開,否則就執(zhí)行$0
不太會(huì)解釋,自己慢慢體會(huì)
作者:
y2j16888
時(shí)間:
2016-09-19 16:08
回復(fù)
16#
butterflyswim
那它不是 if a[k]成立,即不為空,則把a(bǔ)[k];$0 賦值給a[k],否則打印$0賦值給a[k]??
那當(dāng)條件中if a[k] 中這個(gè)的值,初始是怎么樣?怎么樣變化的
作者:
moperyblue
時(shí)間:
2016-09-19 16:28
本帖最后由 moperyblue 于 2016-09-19 16:58 編輯
回復(fù)
15#
y2j16888
if(a[k]){
a[k]=a[k]";"$0
}else{
a[k]=$0
}
復(fù)制代碼
當(dāng)a[k]有值就連接,否則a[k]就被賦值$0(此時(shí)$0已經(jīng)少了第一個(gè)域,因?yàn)榍懊鎴?zhí)行了$1="")
作者:
y2j16888
時(shí)間:
2016-09-19 17:01
回復(fù)
18#
moperyblue
大神,這個(gè)我已經(jīng)知道,我就是不知道 a[k] 中這個(gè)的值,初始是怎么樣?怎么樣變化的。 能否解釋下,謝謝
作者:
moperyblue
時(shí)間:
2016-09-19 17:21
回復(fù)
19#
y2j16888
a[k]初始空, 所以會(huì)執(zhí)行 a[k]=$0
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2