줄 번호를 기준으로 문자열 바꾸기

줄 번호를 기준으로 문자열 바꾸기

여러 파일에서 특정 문자열을 바꾸고 싶은 상황이 있습니다.

문자열 교체AAA다른 문자열을 사용하세요혈액뇌장벽그러나 AAA로 시작하거나 AAA로 끝나는 문자열이 많이 있으므로 34행에서 문자열 하나만 바꾸고 나머지는 변경하지 않고 유지하려고 합니다.

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

답변1

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

답변2

file_record의 세 번째 줄을 바꾸고 싶다고 가정해 보겠습니다.

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

관련 정보