awk를 사용하여 여러 파일의 특정 필드를 변경하는 방법

awk를 사용하여 여러 파일의 특정 필드를 변경하는 방법

저는 스크립팅 언어를 처음 접했습니다. 이름이 비슷한 형식(output1, output2 등)을 가진 여러 개의 출력 파일이 있습니다.

각 출력 파일에서 레코드는 다음 패턴을 따릅니다.

"295534
4750
4 -0.28 -0.01 -0.03 0 0 0 0 1 425.1 -1 4 0
0 0.28 -0.01 -0.025 0 0 0 0 1 425.1 -1 4 0
0 0.28 -0.01 -0.02 0 0 0 0 1 425.1 -1 4 0
....."

내가 원하는 것은 각 파일의 두 번째 행에 있는 필드를 100(예: 4750/100)으로 나누는 것입니다. 어떻게 해야 하나요?

어떤 조언이라도 주시면 감사하겠습니다.

답변1

awk 'NR==2{ $0/=100 }1' output1 >output1.fixed

여러 입력 파일에 적용됩니다.

for file in ./output*; do
    awk 'NR==2{ $0/=100 }1' "$file" >fixed_"$file"
done

특정 필드(둘 이상인 경우) 및 두 번째 행 번호에 변경 사항을 적용합니다.

for file in ./output*; do
    awk 'NR==2{ $1/=100 }1' "$file" >fixed_"$file"
done

$1첫 번째 필드 값을 나타내며 변경하려는 다른 필드로 변경합니다.

관련 정보