[問題] 如何把一堆stdout的數字運算後再stdin?

看板Linux作者 (玻璃做的大叔)時間14年前 (2012/06/02 19:53), 編輯推噓2(209)
留言11則, 5人參與, 最新討論串1/1
舉個fdisk的例子, fdisk -lu /dev/sda|grep ^/dev/sda|cut -c 29-37 690794 94638914 10458314 29993354 35262674 36049859 94638914 現在我想把每一個數字扣掉16666 echo $((`fdisk -lu /dev/sda|grep ^/dev/sda|cut -c 29-37`-16666)) zsh: bad math expression: operator expected at `94638914\n ...' 我希望運算後的每一項當成stdin給dd當成參數但光是運算就卡死了,連echo 都出不來,請問這部分要怎模解決? -- 太初有道,道與耶和華同在,道就是耶和華。這道太初與耶和華同在。 萬物乃藉祂所造,凡被造的沒有一樣不是藉著祂所造的。生命在祂裡頭, 這生命就是人的光。光照在黑暗裡,黑暗卻不接受光。 吾輩乃生於黑暗,行於黑暗。因神之指引,行向光明;又因撒旦誘惑,回歸黑暗。 我不斷地徘徊於光明與黑暗之間,從被造之日至今,又自今直到那審判之日的來臨。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.176.56.78

06/02 20:25, , 1F
xargs -I@ expr @ - 16666
06/02 20:25, 1F

06/02 20:30, , 2F
推簽名檔
06/02 20:30, 2F

06/02 21:34, , 3F
先確定一下那些數字是從哪來的,是 stdout 還是 stderr
06/02 21:34, 3F

06/02 22:29, , 4F
它不就跟你說了 "\n" 啊
06/02 22:29, 4F

06/02 22:47, , 5F
就算看到\n,我也不知道要怎麼處裡(泣),我以為會先算完一行
06/02 22:47, 5F

06/02 22:47, , 6F
再往下算的。
06/02 22:47, 6F

06/02 22:56, , 7F
話說為什麼是94638914\n而不是690794\n啊?第一筆通關了?
06/02 22:56, 7F

06/03 00:39, , 8F
它看到的是 $((123\n 234\n 345\n 456\n -16666))
06/03 00:39, 8F

06/09 21:17, , 9F
感謝一樓L大,我又多學到兩個指令了XD
06/09 21:17, 9F

06/09 21:18, , 10F
回K大:我意思是第一筆690794後面就有\n了,為什麼stderr
06/09 21:18, 10F

06/09 21:20, , 11F
卻是從第二筆的94638914\n才說?我以為會顯示690794\n就錯誤
06/09 21:20, 11F
文章代碼(AID): #1FoVwzJO (Linux)
文章代碼(AID): #1FoVwzJO (Linux)