특정 단어의 발생 횟수를 계산하고 해당 횟수로 입력 파일의 바닥글을 업데이트합니다.

특정 단어의 발생 횟수를 계산하고 해당 횟수로 입력 파일의 바닥글을 업데이트합니다.

.txt 파일의 트레일러 레코드를 파일에서 발견된 특정 레코드 수로 업데이트해야 합니다. "MAM 002" 값이 포함된 파일에서 레코드를 찾고 있습니다. 레코드 수를 세고 이 카운트를 사용하여 다음과 같은 트레일러 레코드를 업데이트합니다.

'TLR241'

입력 파일에서 "MAM 002"를 20번 찾았고 다음과 같이 트레일러 레코드를 업데이트하고 싶다고 가정해 보겠습니다.

'TLR20'

또한 트레일러 레코드의 특정 길이를 유지해야 합니다. 이 경우 트레일러 레코드 길이는 4501바이트입니다.

답변1

다음과 같은 것을 사용해야 합니다:

awk '/MAM 002/{cnt++} {sub(/TLR[0-9]+/,"TLR"(cnt+0))} 1' file

그러나 테스트할 수 있는 샘플 입력/출력을 제공하지 않았기 때문에 확실히 테스트되지 않았습니다(아마도 원하는 대로 작동하지 않을 것이며 원하는 대로 수행하는 더 좋은 방법이 있을 수 있음).

답변2

내가 올바르게 이해했다면 다음과 같이 작동할 수 있습니다.

샘플 파일:

MAM 002
MAM 002
MAM 002
TLR241

주문하다:

sed -i "s/TLR.*/TLR$(grep -c "MAM 002" < file)/" file

산출:

MAM 002
MAM 002
MAM 002
TLR3

관련 정보