저는 스크립팅 언어를 처음 접했습니다. 이름이 비슷한 형식(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
첫 번째 필드 값을 나타내며 변경하려는 다른 필드로 변경합니다.