Bash 스크립트를 사용하여 텍스트 파일의 일부 바꾸기

Bash 스크립트를 사용하여 텍스트 파일의 일부 바꾸기

일부 소프트웨어를 가져와 빌드하기 위해 쉘 스크립트(bash)를 작성 중입니다. 또한 스크립트는 여러 개의 작은 구성 파일을 작성하며 여러 기존 구성 파일을 변경해야 합니다. Bash 스크립트에서 여러 줄의 텍스트 파일을 찾아 바꾸는 가장 좋은 방법은 무엇입니까?

작동할 것 같지만 sed구문을 이해하지 못합니다...

답변1

awk/sed/bash/Python/Perl/Ruby 및 대부분의 기타 도구/프로그래밍 언어는 파일에서 작동할 수 있습니다. "가장 좋은" 방법은 자신에게 익숙하고 편안한 방법입니다. sed에 대해 아무것도 모른다면, 검색해서 배워보세요. 그렇지 않고, 알고 있는 프로그래밍 언어가 있다면 그것을 사용하세요. 다음은 bash 스크립트 예입니다.

exec 6<"file"
while read -r line <&6
do
  case "$line" in 
    *pattern* )
       line="${line//word/replace}"
  esac
  echo "$line"
done > "out"
exec 6<&-
mv out file

sed 예

sed 's/word/replace/g' file

이상한 예

awk '{gsub(/word/,"replace")}1' file > t && mv t file

Python 예제(이후 버전에서는 "with" 사용)

for line in open("file"):
    if "pattern" in line:
        line=line.replace("pattern","replace")
    print line

답변2

답변3

sed s/@var@/$VALUE/g <config.in >config/, 하지만 -- 에 슬래시가 있는지 주의하세요. $VALUE슬래시를 이스케이프 처리하거나 다른 구분 기호를 사용해야 할 수도 있습니다.

관련 정보