[問題] awk & hash
想請問 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 的方法也是失敗。
想請問大家是否有較好的解法,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.136.149.197
推
11/12 22:17, , 1F
11/12 22:17, 1F
→
11/12 22:17, , 2F
11/12 22:17, 2F
→
11/12 22:19, , 3F
11/12 22:19, 3F
→
11/12 22:19, , 4F
11/12 22:19, 4F