여러 파일에서 특정 문자열을 바꾸고 싶은 상황이 있습니다.
문자열 교체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