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

Chinaunix

標題: awk 引用配置文件進行匹配替換 [打印本頁]

作者: skypeleo    時間: 2014-11-14 09:57
標題: awk 引用配置文件進行匹配替換
本帖最后由 skypeleo 于 2014-11-14 10:15 編輯

配置文件如下,格式可修改(比如filed3 可換成3  按照代碼怎么容易寫出怎么配置,  "心情,性格,姓名"只是注釋)
word filed3 心情
word field5 性格
person field1 姓名

文本如下
你們 word 開心 活潑
我們 person 李四
我們 good


處理要求
這個文本2-4G
前兩列固定格式,剩余的列有5個,根據(jù)配置文件順序,放入相應(yīng)列,沒有的列用“”代替

處理的文本結(jié)果為
你們|word|""|""|開心|""|活潑
我們|person|李四|""|""|""|""
我們|good|""|""|""|""|""
作者: ly5066113    時間: 2014-11-14 10:10
目測這是要實現(xiàn)人工智能啊!

需要判斷出:
開心  --〉 心情
活潑  --〉 性格
作者: skypeleo    時間: 2014-11-14 10:14
回復(fù) 2# ly5066113


不是哈,按配置文件順序的  “開心,活潑”的行因為含有“word”,所以在配置文件找到了 于是“開心,活潑”直接按順序?qū)?yīng)了“field3,field5”


   
作者: yestreenstars    時間: 2014-11-14 10:15
哪知道哪一列需要插入空格哦~
作者: ly5066113    時間: 2014-11-14 10:43
本帖最后由 ly5066113 于 2014-11-14 10:44 編輯

回復(fù) 3# skypeleo


try:
  1. $ cat file1
  2. word 3 心情
  3. word 5 性格
  4. person 1 姓名
  5. $ cat file2
  6. 你們 word 開心 活潑
  7. 我們 person 李四
  8. 我們 good
  9. $ awk -vOFS=\| 'NR==FNR{a[$1]=a[$1]","$2;next}{delete b;for(i=3;i<=NF;i++)b[i]=$i;k=3;for(i=3;i<=7;i++)if(index(a[$2],i-2))$i=b[k++];else $i="\042\042"}1' file1 file2
  10. 你們|word|""|""|開心|""|活潑
  11. 我們|person|李四|""|""|""|""
  12. 我們|good|""|""|""|""|""
復(fù)制代碼

作者: skypeleo    時間: 2014-11-14 11:06
回復(fù) 5# ly5066113


    謝謝大神  NR==FNR{a[$1]=a[$1]","$2;next}  中    a[$1]=a[$1]","$2 是啥意思,為什么是這樣表達的
作者: skypeleo    時間: 2014-11-14 11:37
回復(fù) 5# ly5066113


明白了,應(yīng)該是追加  變成,$2,$2,$2

   




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