[問題] awk

看板Linux作者 (天行者)時間12年前 (2013/12/02 21:57), 編輯推噓6(607)
留言13則, 6人參與, 最新討論串1/2 (看更多)
小弟不才 又來打擾了 手邊有一份資料 http://www.fast-files.com/getfile.aspx?file=68458 都是以逗號來分隔之。 我想用awk來做$24-0.634,$26-0.894,$28-1.374,$30-1.84 於是寫成這樣 awk '{ print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18, $19,$20,$21,$22,$23,$24-0.634,$25,$26-0.894,$27,$28-1.374,$29,$30-1.84,$31, $32 }' xmmninthnohead > xmmninthabtovega 中間那串剛爬板是可以用NR這樣 (汗顏) 可是當我貼上去時 只有在每行後面多出-0.634 -0.894 -1.374 -1.84 想當然爾 我不死心做成awk '{ print $1}' xmmninthnohead > xmmninthabtovega 直接一貼 全部東西原封不動跑了過去 囧 這中間有什麼誤會嗎 不是都有逗號做分隔嗎 竟然沒有分隔出每一欄 全部黏在一起 這該怎辦 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.67.123

12/02 22:02, , 1F
awk -F 其餘自己man awk
12/02 22:02, 1F

12/02 22:03, , 2F
awk 預設是空白為分隔符
12/02 22:03, 2F

12/02 22:08, , 3F
謝謝 我來去看看
12/02 22:08, 3F
已解決 有夠蠢 還打擾l大 ※ 編輯: zyxwvoklove 來自: 118.171.67.123 (12/02 22:14)

12/03 11:45, , 4F
lspci耶XDD
12/03 11:45, 4F
噢對了 如果有人看到還在請教一下 一般取coulmn 是要$來處理之 e.g. $31 就是第三十一 但是如果反過來取row是什麼指令 謝謝 ※ 編輯: zyxwvoklove 來自: 140.122.136.14 (12/05 01:06)

12/05 12:34, , 5F
比方印出31列: awk 'BEGIN{i=0;}{i++;}i==31{print $0;}' ?
12/05 12:34, 5F

12/05 12:50, , 6F
或是... sed -n 31p後再餵給awk XD
12/05 12:50, 6F

12/05 15:40, , 7F
31 行不用那麼麻煩啦... awk '(NR==31){print $0}'
12/05 15:40, 7F
如果是有限定條件型的話 假設說要取第三十一、第二十、第五十 (NR==31)(NR==20)(NR==50)......這樣一個一個寫出來嗎 還是NR設很多範圍之類的也可以?! 謝謝 ※ 編輯: zyxwvoklove 來自: 140.122.136.14 (12/05 16:31)

12/05 17:13, , 8F
回rick大,也是. 話說 gawk 的 man page 也耍笨了(找nlines) :P
12/05 17:13, 8F

12/05 17:14, , 9F
用運算方式即可, 如 NR==31||NR==32 或 NR>=31&&NR<=32 之類.
12/05 17:14, 9F

12/05 17:15, , 10F
就跟你寫 { if (條件) { 處理; } } 的方式一樣意思.
12/05 17:15, 10F
其實我對於寫程式還是不太夠力 根本就像個小嬰兒一樣orz.... 畢竟念的科目其實看似和程式毫無相關 但大大地卻一直要靠程式才能完成啊(汗顏 ※ 編輯: zyxwvoklove 來自: 140.122.136.14 (12/05 17:30)

12/05 18:03, , 11F
多看多抄就沒問題了啦,比起程式 shell script 簡單多
12/05 18:03, 11F

12/05 18:03, , 12F
了。shell script 我會一點點,寫程式方面我還是個胚
12/05 18:03, 12F

12/05 18:03, , 13F
胎...
12/05 18:03, 13F
文章代碼(AID): #1Id97ZWl (Linux)
討論串 (同標題文章)
文章代碼(AID): #1Id97ZWl (Linux)