亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 請(qǐng)教高難度 shell腳本 搞定加微信發(fā)紅包獎(jiǎng)勵(lì) [打印本頁(yè)]

作者: xin2v    時(shí)間: 2018-12-08 10:43
標(biāo)題: 請(qǐng)教高難度 shell腳本 搞定加微信發(fā)紅包獎(jiǎng)勵(lì)


A 表格如下  第22列 第23列(紅色為22列)

"232"|"1er"|"eqw"|.......|"OTH"|"WY"|"rr"
"222"|"e6r"|"wqw"|.......|"Citizen"|"WY"|"rr"
"222"|"1er"|"eqw"|.......|"Dual_Citizen"|"WY"|"rr"
"212"|"eer"|"wqw"|.......|"Resident"|"WY"|"rr"
"252"|"e2r"|"eqw"|.......|""|"WY"|"rr"
"252"|"e2r"|"eqw"|.......|"WQC"|"WY"|"rr"

只保留23列 保留規(guī)則如下
如果22列的值是  "OTH" 或者 "Resident" 其對(duì)應(yīng)的23列的值保持不變
如果22列的值是  "Citizen"或者"Dual_Citizen" 其對(duì)應(yīng)的23列的值替換為 "US"
如果22列的值 為空 "" 其對(duì)應(yīng)的23列的值替換為 "DKK_US"
如果22列的值 不為空 也不是上面 四個(gè)值 其刪除改行


改后效果如下

"232"|"1er"|"eqw"|.......|"WY"|"rr"
"222"|"e6r"|"wqw"|.......|"US"|"rr"
"222"|"1er"|"eqw"|.......|"US"|"rr"
"212"|"eer"|"wqw"|.......|"WY"|"rr"
"252"|"e2r"|"eqw"|.......|"DKK_US"|"rr"


哪個(gè)大神 搞定的話  請(qǐng)留下 微信號(hào)   


作者: cfwyy    時(shí)間: 2018-12-10 11:05
  1. gawk 'BEGIN{FS=OFS="|"}$22 ~"Citizen"{$23="\"US\""} $4~ "\"\""{$23="\"DKK_US\""} $22 ~"OTH|Resident|Citizen|\"\""{print $0}' A.txt
復(fù)制代碼

試試看。
作者: wh7211    時(shí)間: 2018-12-10 12:23
本帖最后由 wh7211 于 2018-12-10 19:47 編輯

回復(fù) 1# xin2v

  1. awk 'BEGIN{FS=OFS="|"}{if($22~"OTH|Resident"){NF=NF}else if($22~"Citizen|Dual_Citizen"){$23="\042US\042"}else if($22~"\042\042"){$23="\042DKK_US\042"}else{next}}1' A
復(fù)制代碼

作者: 本友會(huì)機(jī)友會(huì)攝友會(huì)    時(shí)間: 2018-12-10 17:27
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: 本友會(huì)機(jī)友會(huì)攝友會(huì)    時(shí)間: 2018-12-11 12:28
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者: xin2v    時(shí)間: 2018-12-11 13:28
本友會(huì)機(jī)友會(huì)攝友會(huì) 發(fā)表于 2018-12-11 12:28
1 這個(gè)不難。
2
======================================================

大哥 是LINUX 服務(wù)器啊

作者: xin2v    時(shí)間: 2019-01-03 17:30
回復(fù) 2# cfwyy

如果需求變了原來(lái)是
如果22列的值 不為空 也不是上面 四個(gè)值 其刪除改行
現(xiàn)在是不刪除  該如何處理 ?

作者: xin2v    時(shí)間: 2019-01-03 17:32
wh7211 發(fā)表于 2018-12-10 12:23
回復(fù) 1# xin2v

如果需求變了原來(lái)是
如果22列的值 不為空 也不是上面 四個(gè)值 其刪除改行
現(xiàn)在是不刪除  該如何處理 ?

作者: xin2v    時(shí)間: 2019-01-03 17:42
awk 'BEGIN{FS=OFS="|"}{if($4~"OTH|Resident"){NF=NF}else if($4~"Citizen|Dual_Citizen"){$5="\042US\042"}else if($4~"\042\042"){$5="\042DKK_US\042"}}1' A

想通了 謝謝
作者: RG_INPUT    時(shí)間: 2019-04-12 09:56

作者: nuclearxin    時(shí)間: 2019-04-12 13:42
  1. BEGIN {
  2. FS="|"
  3. OFS="|"
  4. dictx_str="OTH,Citizen,Dual_Citizen,Resident,"

  5. split(dictx_str,dictx_arr,",")
  6.   for(i in dictx_arr){
  7.     key_["\""dictx_arr[i]"\""]=1
  8.   }
  9. #  for(i in key_)print i
  10. }


  11. func process_l()
  12. {
  13.   if(($5~/^.Citizen.$/) || ($5~/^.Dual_Citizen.$/)){
  14.     $6="\"US\""
  15.     print
  16.     return
  17.   }
  18.   if ($5~/^..$/){
  19.     $6="\"DKK_US\""
  20.     print
  21.     return
  22.   }
  23.   if ($5 in key_){
  24.     print
  25.     return
  26.   }
  27. }

  28. {
  29. process_l()
  30. }
復(fù)制代碼

我去, 我竟然寫這個(gè)東西了 呵呵
awk -f   thisfile  /url 運(yùn)行
作者: f_cook    時(shí)間: 2021-07-16 17:10
  1. perl -F'\|' -ane 'if($F[4]=~/^\"OTH\"$|^\"Resident\"$/){pass}elsif($F[4]=~/^\"Citizen\"$|^\"Dual_Citizen\"$/){$F[5]="\"US\""}elsif($F[4]=~/^\"\"$/){$F[5]="\"DKK_US\""}else{@F=()};splice(@F, 4, 1);for($i=0;$i<scalar(@F);$i++){if($i eq scalar(@F)-1){print "@F[$i]"}else{print "@F[$i]|"}}' A
復(fù)制代碼

作者: howardvictor    時(shí)間: 2023-03-08 17:24
幫不上忙,頂一下!




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2