내 출력은 다음과 같습니다
"Fe\s2b" 문자열이 포함된 행에서 마지막 요소를 선택하고 싶습니다. 하지만 문제는 "H\s\s1\s\s\s\s\s\s4861.33A"가 나타날 때마다 그리드 포인트이고 이상적으로는 포함하는 선 옆에 "Fe\s2b"가 있어야 한다는 것입니다. H\s\s1\s\s\s\s\s\s4861.33A"(대체이므로 각 짝수 행의 마지막 요소를 간단히 호출할 수 있습니다).
그렇지 않기 때문에 각 "H\s\s1\s\s\s\s\s\s4861.33A"에 대해 다음 줄에서 "Fe\s2b" 문자열을 검색하는 모든 항목을 기록하고 싶습니다. . 다음과 같은 것입니다(이것이 작동하지 않는다는 것을 알고 있습니다).
awk '{print NR, $0}' testing.txt | grep "H\s\s1\s\s\s\s\s\s4861.33A" testing.txt | awk '{
if ($1 == H && $(NF + 1)== H)
print "-99";
else
grep "Fe\s2b" testing.txt | awk "{print $NF}" testing.txt && <increment line=line+2>}' testing.txt
여기서는 각 행의 첫 번째 요소를 가져와 다음 행의 첫 번째 요소와 비교하려고 합니다. 일치하면 "-99" 값을 할당합니다. 그렇지 않으면 다음 행의 마지막 요소를 호출합니다(즉, 해당). 'Fe\s2b' 값)으로 이동하고 n+2 라인으로 점프합니다.
답변1
파이썬에서 이 작업을 수행하는 방법을 찾았습니다.
data = open('testing.txt','r+')
for line in data:
if line[0] == 'H':
print(-99)
else:
if line[-8]==" ":
print(line[-7:-1])
else:
print(line[-8:-1])
try:
data.__next__()
except StopIteration:
break