連續數搜索從一組數字我有號碼的列表如下圖所示:如何使用bash或蟒蛇
1 0/1
2 1/1
3 1/1
4 1/1
5 1/1
6 1/1
7 0/1
8 0/1
如果列2是「1/1」,連續行,我會喜歡報告職位的開始和結束,例如在這裏,應該是:2-6
我應該如何應用一些簡單的bash代碼,或者必要時使用python?
千恩萬謝
連續數搜索從一組數字我有號碼的列表如下圖所示:如何使用bash或蟒蛇
1 0/1
2 1/1
3 1/1
4 1/1
5 1/1
6 1/1
7 0/1
8 0/1
如果列2是「1/1」,連續行,我會喜歡報告職位的開始和結束,例如在這裏,應該是:2-6
我應該如何應用一些簡單的bash代碼,或者必要時使用python?
千恩萬謝
如果你能在Python代碼,你可以解決它通過以下方式:
1/1
時。因此,代碼會看起來像:
import re
# step 1
with open('filename') as f:
data = f.read()
# step 2
list = re.findall(r'(\d+)\s+1/1', data)
# step 3
# Check the link in the description of the algorithm
非常感謝!它運作良好 – user815408
猛砸解決方案:
#! /bin/bash
unset in # Flag: are we inside an interval?
unset last # Remember the last position.
while read p f ; do
if [[ $f = 1/1 && ! $in ]] ; then # Beginning of an interval.
echo -n $p-
in=1
elif [[ $f = 1/1 && $in ]] ; then # Inside of an interval.
last=$p
elif [[ $f != 1/1 && $in ]] ; then # End of an interval.
echo $last
unset in
fi
done
我完全不知道這樣的問題... – user815408
你不能,例如,找到第一個「1/1」事件的索引,並計算你必須提前多少次搜索,直到它不是*「1/1」? – paddy
是第2列唯一可能的值是「0/1」還是「1/1」? –