星期日, 4月 06, 2014

awk 的 pipe

之前都很笨,用 awk 處理完,還是都先用 printf 輸出到檔案,再用 sh 去執行。今天終於去查了 awk script 裡是否有類似 system() 的用法,果然 awk manual 裡就有提到 system() ,不過該小節建議了更好的做法,就是直接用 | 把輸出的指令 pipe 到 sh 去。
作法大致是這樣:
awk '{printf("cp %s /media/usbdisk%s\n", $1, $1) | "/bin/sh" }' files-list.txt

沒有留言: