在awk中執行system命令------太有用了
有這樣一個臨時需求: 在a.txt檔案中有一萬行字串, 而二進位制檔案test能解密任何一行, 格式為./test decrypt xxx, 現在要把a.txt的所有行解密出來, 存放在b.txt, 怎麼搞?
我一開始的思路是: 寫程式逐行讀取a.txt, 然後在程式中迴圈執行system("./test decrypt xxx"), 看看, 這是多個SB的事情啊。 為什麼不用awk + system快速搞起呢?
如下:
[email protected]:~$ cat a.txt
abc
def
ok
[email protected] :~$
[email protected]:~$
[email protected]:~$
[email protected]:~$ awk '{cmd="echo hehe "$0; system(cmd)}' a.txt
hehe abc
hehe def
hehe ok
[email protected]:~$
所以, 在我那個實際例子, 可以這麼搞:
awk '{cmd="./test decrypt "$0; system(cmd)}' a.txt > b.txt
本來以為要半個小時, 結果5分鐘搞定。