[問題] 用awk+printf印出要的行數

看板Linux作者 (宇宙學型男)時間13年前 (2012/06/23 15:47), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/2 (看更多)
大家好 我想請問一下 有辦法 用awk+printf然後用"輸入"的方式叫電腦直接印出某列我要的檔案嗎? ex: cat dataset |awk ' { if($1>=135 && $1<=136 && $2>=50 && $2<=51 && $3>=0.4 && $3<=0.6) printf "%f %f %f %f %f\n",$1, $2, $3, $42, $43} '>data.out 就是在printf那邊 我要印出dataest中 第1, 2, 3, 42, 43列資料到data.out 現在就是我有沒有辦法用輸入的 例如告訴電腦我要輸入五次 每次分別是1 2 3 4 5 or 下次是7 8 2 3 9 有找過一些資料 現在卡在不知道怎麼讓變數活在awk中 (一開始令類型也還沒很懂) 雖然我知道shell scripts不用編譯 但是每次一直改也很煩 不知道沒有辦法? (一樣的工作 給perl或 python去做會比較快嗎?) 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.192

06/23 20:35, , 1F
awk -v c1=$1 -v c2=$2 -v '{print $c1" "$c2" "$c3}'
06/23 20:35, 1F

06/23 20:35, , 2F
你可以用-v將shell變數傳入awk中
06/23 20:35, 2F
文章代碼(AID): #1FvNIHF- (Linux)
文章代碼(AID): #1FvNIHF- (Linux)