[問題] awk & hash

看板Linux作者 (我被淡水的路寵壞了)時間16年前 (2009/11/12 21:15), 編輯推噓1(103)
留言4則, 1人參與, 最新討論串1/1
想請問 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
index的部分
11/12 22:17, 2F

11/12 22:19, , 3F
url[$9]好像會把$9當作index convert過去
11/12 22:19, 3F

11/12 22:19, , 4F
所以才會照字母順序
11/12 22:19, 4F
文章代碼(AID): #1A_0fMPX (Linux)