awk & hash - Linux

Rosalind avatar
By Rosalind
at 2009-11-12T21:14

Table of Contents

想請問 awk 之中是否有可用 hash 的 function?
或是可以取得呼叫外部程式所傳回來的值。


詳細的問題如下,文字檔中有許多 url,url 有可能重複,
想把 url 分別存在不同的檔案之中,但是相同 url 的存在同個檔案。

最初的想法是
{
print $0 > $0
}
這樣利用 url 當作檔案名稱,快速簡單。
但是實際上使用 url 當檔案名稱會有問題。

所以接下來的想法,將 url 利用 hash 轉成數字,
利用數字當作檔案名稱。
不過找不到 awk 內 hash 的 function。
自己使用 c 寫的 hash ,算出來的值又無法被 awk 取得。

有使用過 array 的方式
!($9 in url)
{url[$9];}
利用這樣的方式將出現過的 url 儲存起來,然後計算位置,
想說利用 index 的值當檔案名稱,
但 awk 加入 array 的方式,並不是依照加入的循序排列(似乎是依照字典順序)
ex:
第一個 第二個 第三個
url1 url1 url3
url2 url1
url2
因為順序會改變,所以使用 index 的方法也是失敗。


想請問大家是否有較好的解法,謝謝。

--
Tags: Linux

All Comments

Elvira avatar
By Elvira
at 2009-11-17T16:52
使用另外一個變數試試看
index的部分
Kama avatar
By Kama
at 2009-11-20T00:03
url[$9]好像會把$9當作index convert過去
所以才會照字母順序

EDA Tool Laker無法開啟

Sandy avatar
By Sandy
at 2009-11-12T18:47
※ 引述《msde (旅行)》之銘言: : 在下安裝EDA Tool 在於Linux UBUNTU 9.04 amd 32 : 但執行Laker 時,卻出現下列文字 : /home/msde1/laker%/usr/cad/spring_soft/laker/cur/platform/LINUX/bin/la ...

EDA Tool Laker無法開啟

Jack avatar
By Jack
at 2009-11-12T16:50
在下安裝EDA Tool 在於Linux UBUNTU 9.04 amd 32 但執行Laker 時,卻出現下列文字 /home/msde1/laker%/usr/cad/spring_soft/laker/cur/platform/LINUX/bin/laker: error while loading ...

請問ubuntu下有調整CPU風扇速度的套件嘛?

Odelette avatar
By Odelette
at 2009-11-12T14:32
目前似乎還沒有發現 能夠有圖形介面又安裝簡單的為最佳 不然在ubuntu下作業都得忍受CPU風扇的噪音啊~~ - ...

使用yum時. 可以指定舊版安裝嗎?

Noah avatar
By Noah
at 2009-11-12T11:05
※ 引述《bullchry (哈)》之銘言: : 如題~ 我是用fedora 11 : 在安裝amarok 時 想安裝 1.4版的 : 但是給 yum install amarok 時 都會裝成2.0版的(我的repo裡可以找到1.4的) : 有去男人一下yum 他說要指定版本 可以加 dash 指定 ...

Canon MF4350d driver 安裝

Andy avatar
By Andy
at 2009-11-12T03:07
現在使用系統是 ubuntu 9.04 64bit... 關於 4350 的安裝, 我試著照著 canon 的 guide menu 一步一步來 結果無法運作 (無法直接以 rpm -i 去裝 64bit 的 rpm 檔, 會有 library 找不到 source code 也不能編, ...