[問題] 請問awk及算數運算元問題

看板Linux作者時間15年前 (2010/04/27 20:50), 編輯推噓3(307)
留言10則, 4人參與, 最新討論串1/2 (看更多)
目前遇到awk及算數運算元的問題 想請問版友一下 目前有2個檔案 a.txt內容為 2100427197905 2100427192954 2100427192807 b.txt內容為 241 2512 147 想請問一下該如何讓 a.txt的第一行加上b.txt的第一行然後輸出於c.txt的第一行呢? (這邊是指數字上的相加) c.txt的內容 2100427198146 2100427195466 2100427192954 另一個問題是 a.txt的內容每一行都加上1000 可以用下面這種寫法嗎? cat a.txt | awk '{print $(( $1 + 1000 ))}' -- ★小天使 痛苦的時侯要笑。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.123.240.198

04/27 20:57, , 1F
有兩個 stream,要是我不會用 pipe
04/27 20:57, 1F

04/27 20:57, , 2F
建議用 shell script + $((x+y))
04/27 20:57, 2F

04/27 21:21, , 3F
目前是用cat a.txt| awk '{print $1 + 1000 }'
04/27 21:21, 3F

04/27 21:22, , 4F
不過這樣會變成科學記號表示 變成 2.10043e+12 囧
04/27 21:22, 4F

04/27 21:23, , 5F
有人知道怎麼還原回來原本的數字嗎?不要科學記號啦>"<
04/27 21:23, 5F

04/28 00:42, , 6F
cat a.txt| awk '{printf("%d\n",$0 + 1000)}'可以解決
04/28 00:42, 6F

04/28 01:37, , 7F
paste a.txt b.txt | awk '{printf ("%d\n",$1+$2)}'
04/28 01:37, 7F

04/29 12:55, , 8F
謝謝樓上~請問除了用paste還有其他方法嗎?
04/29 12:55, 8F

05/02 02:49, , 9F
cat a.txt b.txt|awk 'BEGIN{RS=""}{for(i=1;i<4;i++)
05/02 02:49, 9F

05/02 02:49, , 10F
{printf("%d \n",$(i)+$(i+3))}}'
05/02 02:49, 10F
文章代碼(AID): #1Brjr_Qc (Linux)
文章代碼(AID): #1Brjr_Qc (Linux)