1. 程式人生 > >awk中分隔符中的一個小妙用

awk中分隔符中的一個小妙用

處理文字的時候如果碰到,諸如"123abc,45^&dfgh67ab|&8"這種以所有非數字的來隔開數字的字串,要得出數字字串的個數。

其中連續的數字,比如123算一個。這個時候可以藉助awk中的-F分隔符來處理,可以起到妙用的效果!

[[email protected] ~]# echo "123abc,45^&dfgh67ab|&8" | awk -F"[^0-9]" '{print NF}'
4

上面的一條語句就可以將其分隔開,並統計出個數為。[^0-9]為所有非數字的分隔符。 NF為分隔後的列數!

如果使用Python來處理,就可以這裡操作:

>>> import re
>>> S = "123abc,45^&dfgh67ab|&8"
>>> L = re.findall(r"\d+", s)
>>> L
['123', '45', '67', '8']
>>> len(L)
4
>>>

或者

>>> import re
>>> S = "123abc,45^&dfgh67ab|&8"
>>> L = re.split(r"[^0-9]+", S)
>>> L
['123', '45', '67', '8']
>>> len(L)
4
>>>