awk & hash - Linux
By Rosalind
at 2009-11-12T21:14
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 的方法也是失敗。
想請問大家是否有較好的解法,謝謝。
--
或是可以取得呼叫外部程式所傳回來的值。
詳細的問題如下,文字檔中有許多 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
By Elvira
at 2009-11-17T16:52
at 2009-11-17T16:52
By Kama
at 2009-11-20T00:03
at 2009-11-20T00:03
Related Posts
EDA Tool Laker無法開啟
By Sandy
at 2009-11-12T18:47
at 2009-11-12T18:47
EDA Tool Laker無法開啟
By Jack
at 2009-11-12T16:50
at 2009-11-12T16:50
請問ubuntu下有調整CPU風扇速度的套件嘛?
By Odelette
at 2009-11-12T14:32
at 2009-11-12T14:32
使用yum時. 可以指定舊版安裝嗎?
By Noah
at 2009-11-12T11:05
at 2009-11-12T11:05
Canon MF4350d driver 安裝
By Andy
at 2009-11-12T03:07
at 2009-11-12T03:07