假设一个文件
abc[1:0]
2 abc
abc 3
[1:0] abc
我有一个很大的档案。现在,如果我想把所有的数字加起来,如下所示
请注意,不应计算括号外的数字
1+1+numberoflines
在这种情况下,1+1+4=6
我该怎么做
我尝试了很多方法,比如
perl -nle '$sum+=$_} END { print $sum' test1.txt
或
n=$1
sum=0
sd=0
while [ $n -gt 0 ]
do
sd=`expr $n % 10`
sum=`expr $sum + $sd`
n=`expr $n / 10`
done
echo "Sum of digit for numner is $sum"
但他们中没有一个是不带空格的数字
请注意,abc只是一个例子。它可以是任何随机文本和数字
使用grep和sed,以下是:
如果括号在一行中出现多次,请使用sed而不是grep
其工作原理如下所述:
打印
6
要理解它,请在适当的位置插入一些
say
:对于Python解决方案,可以使用相同的正则表达式并执行以下操作:
这个正则表达式有一些限制:它不会处理不平衡的或嵌套的括号。这是一个更复杂的正则表达式
Python注意:
{}中的{}仅为Python 3.9。
对于早期的Python版本,分成两条语句:
相关问题 更多 >
编程相关推荐