.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