파일에서 문자열을 찾은 다음 해당 문자열을 포함하는 줄을 삭제할 수있는 다음 코드가 있습니다.bash는 파일에서 한 줄을 영구적으로 삭제합니다.
a
b
c
"A"를 삭제 한 후 (문자열 = A) file.txt를가
b c
대신
될 것입니다 :echo `sed /$string/d file.txt` > file.txt
문제는 처음 file.txt를 포함하는 경우이다
b
c
아무도 도와 줄 수 있습니까?
정규 표현식 chars에서 먼저 $ string을 (를) 이스케이프해서는 안됩니까? – Khaledvic
@Khaledvic : 예. 이 메소드는'$ string'이 쉘이 의미있는 문자를 포함하면 문제가된다. '! '. 기본적으로,'$ string'의 내용이 알려지지 않은 경우,주의 깊게 정규 표현식과 셸의 유효 문자를 모두 이스케이프해야합니다. 그것을 지적 주셔서 감사합니다. – Thor