한 줄을 다른 줄로 바꾸고 쉘 스크립트를 사용하여 해당 줄 아래에 새 줄을 추가하려고 합니다.
교체하고 싶은 항목:
export PATH
그리고:
JAVA_HOME=/usr/lib/jvm/java-1.8.0-ibm-1.8.0.2.10-1jpp.1.el7.x86_64
export PATH JAVA_HOME
즉, export PATH
이 두 줄로 바꿔야 합니다.
sed 또는 쉘 스크립트를 사용하는 방법을 알려주십시오.
답변1
sed 's|^export PATH$|JAVA_HOME=/usr/lib/jvm/java-1.8.0-ibm-1.8.0.2.10-1jpp.1.el7.x86_64\
& JAVA_HOME|' < "$yourfile"
답변2
sed 명령을 사용하십시오:
sed -i 's/<original text>/<new-text>/g' file.txt
sed -i 's/original/new/g' file.txt
설명하다:
- sed = 스트림 편집기
- -i = 현재 위치(즉, 원본 파일에 다시 저장) 명령 문자열:
- s = 대체 명령
- 원시 텍스트 = 대체할 단어(또는 단어 자체)를 설명하는 정규식
- 새 텍스트 = 바꿀 텍스트
- g = 전역(즉, 첫 번째 항목만 교체하지 않고 모두 교체)
- file.txt = 파일 이름
선택하다:
awk '{gsub(/'pattern'/,"replacement")}' file