作者LIAR (玻璃做的大叔)
看板Linux
標題[問題] 如何把一堆stdout的數字運算後再stdin?
時間Sat Jun 2 19:53:24 2012
舉個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
→ Lance0312:xargs -I@ expr @ - 16666 06/02 20:25
推 c23328:推簽名檔 06/02 20:30
推 Bencrie:先確定一下那些數字是從哪來的,是 stdout 還是 stderr 06/02 21:34
→ kdjf:它不就跟你說了 "\n" 啊 06/02 22:29
→ LIAR:就算看到\n,我也不知道要怎麼處裡(泣),我以為會先算完一行 06/02 22:47
→ LIAR:再往下算的。 06/02 22:47
→ LIAR:話說為什麼是94638914\n而不是690794\n啊?第一筆通關了? 06/02 22:56
→ kdjf:它看到的是 $((123\n 234\n 345\n 456\n -16666)) 06/03 00:39
→ LIAR:感謝一樓L大,我又多學到兩個指令了XD 06/09 21:17
→ LIAR:回K大:我意思是第一筆690794後面就有\n了,為什麼stderr 06/09 21:18
→ LIAR:卻是從第二筆的94638914\n才說?我以為會顯示690794\n就錯誤 06/09 21:20