亚洲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:
$ cat file1
word 3 心情
word 5 性格
person 1 姓名
$ cat file2
你們 word 開心 活潑
我們 person 李四
我們 good
$ 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
你們|word|""|""|開心|""|活潑
我們|person|李四|""|""|""|""
我們|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