많은 파일에서 특정 문자열을 바꾸려는 상황이 있습니다.
문자열 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