![쉘 스크립트를 통해 파일에서 문자열을 제거하는 방법은 무엇입니까?](https://linux55.com/image/32554/%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
나는 그것에서 문자열을 제거하려고합니다 .bash_profile
. 내 쉘 스크립트가 실행될 때 다음 문자열을 추가하십시오.
bash_profile의 내 문자열은 다음과 같습니다.
# for Myapllication
export MYAPP_HOME=/opt/myapp
.bash_profile
myapp 을 삭제하여 문자열을 삭제하고 싶습니다 rpm
.
쉘 스크립트를 통해 파일에서 문자열을 제거하는 방법은 무엇입니까? (또는 가능한 대안)
답변1
sed
(다른 도구도 있음)을 사용하여 텍스트 파일에서 문자열을 제거할 수 있습니다.
예를 들어:
sed -i -e '/myapp/d' .bash_profile
.bash_profile
문자열을 포함하는 모든 줄에서 제거합니다 myapp
.
답변2
이와 같은 파일은 ~/.bash_profile
사용자의 홈 디렉터리에 있습니다. 이러한 파일은 전적으로 사용자의 통제하에 있습니다. 이와 같이 전역적으로 실행되는 명령은 rpm
해당 파일을 변경해서는 안 됩니다.
일반적으로 rpm 패키지에서 제공하는 기본 구성 파일이 있습니다.
그런 다음 루트가 특정 시스템에 특정한 일부 기본 설정을 재정의하는 데 사용할 수 있는 전역 구성 파일이 있습니다.
그런 다음 홈 디렉터리에 개인 기본 설정에 따라 전역 설정을 재정의하는 데 사용할 수 있는 개인 구성 파일이 있습니다.
이와 같은 명령은 rpm
첫 번째만 변경해야 하며 후자는 변경하지 않아야 합니다.
답변3
sed -i '/^export MYAPP_HOME=\/opt\/myapp$/d' ~/.bash_profile
답변4
vim 방식을 시도해 보세요:
ex -s +"g/MYAPP_HOME/d" -cwq file.txt