줄 번호를 기준으로 문자열 교체 AAA 를 다른 문자열

많은 파일에서 특정 문자열을 바꾸려는 상황이 있습니다.

문자열 AAA 를 다른 문자열 BBB 로 바꾸십시오.하지만 AAA로 시작하거나 AAA로 끝나는 많은 문자열이 있으며 34 행에서 하나만 바꾸고 다른 줄은 그대로 유지하려고합니다.

모든 파일에서이 문자열이 정확히 34 번째 줄에있는 줄 번호로 지정할 수 있습니까?



답변

sed에 행 번호를 지정하거나 awk에 NR (레코드 수)을 지정할 수 있습니다.

awk 'NR==34 { sub("AAA", "BBB") }'

또는 명령 행에 둘 이상의 파일을 지정하려면 FNR (파일 번호 레코드)을 사용하십시오.

awk 'FNR==34 { sub("AAA", "BBB") }'

또는

sed '34s/AAA/BBB/'

sed로 전체 교체

sed -i '34s/AAA/BBB/' file_name

답변

file_record의 세 번째 줄을 바꾸고 싶다고 가정 해보십시오.

sed -i "s/`head -3 file_record | tail -1 `/replaced/" file_record