您好,登錄后才能下訂單哦!
問題:
[root@base tmp]# cat ent.txt
1
2
3
4
5
6
7
8
9
10
要求輸出結果:1+2+3+4+5+6+7+8+9+10+=55
最好使用tr命令打印出
分析題后,想到最簡單的解法就是循環拼接打印結果:
#!/bin/sh
NumArray=($(cat /tmp/ent.txt | awk '{print $1}'))
result="1"
all=1
for((i=1;i<${#NumArray[*]};i++))
do
result="$result+${NumArray[$i]}"
all=$((${NumArray[$i]}+$all))
done
echo $result=$all
看過老男孩老師的答案,才叫拜服,很是簡單:
cat ent.txt | tr "\n" "+" | sed 's/\+$/\n/' 直接用tr將"\n"替換為"+",然后sed替換最后一個"+"
cat ent.txt |tr "\n" "+"|sed 's/\+$/\n/'|bc 一個|bc就可以將字符串表達式,轉換成算術表達式
python實現:
# coding: utf-8
import sys
from itertools import groupby
def demo(ListFile):
reList = []
files = file(ListFile,'r')
lines = files.readlines()
str_list = "1"
result=0
for item in lines:
rLIst = item.replace("\n","")
reList.append(rLIst)
if int(rLIst) > 1:
str_list = str(str_list)+"+"+str(rLIst)
result = result + int(rLIst)
return "%s=%d" %(str_list,result)
if __name__ == "__main__":
print demo("/tmp/ent.txt")
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。