답변:
그 곳 sed
에서 게임이 시작됩니다. sed
명령이 형식은 :
[pattern1][,pattern2][!] command [args]
정규식을 사용하므로 조금 어려울 수 있습니다. 아래의 두 번째 링크에서 가져온 몇 가지 기본 예 :
# 각 줄에서 "foo"를 "bar"로 대체 (찾기 및 바꾸기) sed 's / foo / bar /'# 줄에서 첫 번째 인스턴스 만 교체 sed 's / foo / bar / 4'# 줄에서 4 번째 인스턴스 만 교체 sed 's / foo / bar / g'# 라인의 모든 인스턴스를 대체합니다 sed 's / \ (. * \) foo \ (. * foo \) / \ 1bar \ 2 /'# 다음에 나오는 마지막 대소 문자를 바꿉니다. sed 's / \ (. * \) foo / \ 1bar /'# 마지막 경우 만 교체 # "baz"를 포함하는 줄에 대해서만 "foo"를 "bar"로 대체 sed '/ baz / s / foo / bar / g' # "baz"를 포함하는 줄을 제외하고 "foo"를 "bar"로 대체 sed '/ baz /! s / foo / bar / g' # "scarlet"또는 "ruby"또는 "puce"를 "red"로 변경 sed 's / scarlet / red / g; s / ruby / red / g; s / puce / red / g'# 대부분의 seds gsed 's / scarlet \ | ruby \ | puce / red / g'# GNU sed 만 해당
일부 참조
매우 늦은 답변. 그러나 이것은 비슷한 문제 / 질문을 가진 다른 사람들을 도울 수 있습니다.
패치를 만들어 적용하는 것이 좋습니다. 여기서 좋은 예를 찾을 수 있습니다 .
예를 들어 new.txt 파일에 old.txt에 적용 할 변경 사항이 포함되어 있다고 가정합니다. 터미널에서 또는 patch_file.sh를 작성하고 실행하여 명령을 실행할 수 있습니다.
명령 행 : 터미널을 열고 아래 행을 복사하여 실행하십시오 (필요한 경우 파일 이름 변경).
diff old.txt new.txt > patch.patch # to create the patch
patch old.txt -i patch.patch -o patched_old.text # to apply patch
스크립트 : .sh 파일 접근 방식을 사용합니다. 터미널에서 (키보드 : ctrl + alt + t :
gedit patch_file.sh
아래와 같이 터미널에서 실행되는 명령을 .sh 파일과 헤더 아래에 복사하여 붙여 넣습니다 (gedit).
#!/bin/sh
diff old.txt new.txt > patch.patch # to create the patch
patch old.txt -i patch.patch -o patched_old.text # to apply patch
스크립트를 실행 가능하게 만듭니다 (터미널).
chmod +x patch_file.sh
스크립트 (터미널)를 실행하십시오.
./patch_file.sh # may require sudo access depending on the directory affected