스트림 편집기(SED): 기본 사항

WBOY
풀어 주다: 2024-03-20 15:11:22
앞으로
426명이 탐색했습니다.

스트림 편집기(SED): 기본 사항

SED는 Stream Editor라고도 알려져 있으며 매우 유용한 도구입니다. 특정 단어나 패턴을 검색한 다음 해당 단어나 패턴에 대해 일부 작업을 수행하거나, 즉 변환하는 데 사용됩니다. Windows에서 SED는 찾기 및 바꾸기 기능이라고도 합니다. SED는 기본적으로 Ubuntu와 함께 제공되므로 설치할 필요가 없습니다. 이 튜토리얼에서는 SED 또는 Stream Editor를 사용하는 방법을 보여줍니다.

사령관 "S"

SED 또는 스트림 편집기에서 가장 중요한 명령은 "s" 명령입니다. "s"는 대체를 의미합니다. 구문은 다음과 같습니다:

/regexp/replacement/플래그

그러면 “file.txt”라는 파일을 예로 들어보겠습니다. "file.txt"를 따라가면 다음과 같이 보입니다.


“S” 명령이 어떻게 작동하는지 예를 들어 보겠습니다.

SED'S/첫번째/달/나'file.txt>moon.txt

이런 표현이 주어지면 다음을 의미합니다.

    • S—대체를 의미합니다.
    • 첫 번째 — "file.txt"라는 파일에서 검색할 단어입니다.
    • "Moon" - "First"는 "Moon"으로 대체됩니다.
    • 지금은 이 부분을 무시하자는 의미입니다.
    • File.txt - SED가 패턴이나 단어를 검색하는 파일입니다. 이 경우 "First"라는 단어는 다음과 같습니다.
    • file.txt에서 검색

    • Moon.txt - "first"라는 단어가 "Moon"으로 바뀌면 "moon.txt"라는 이름으로 저장됩니다.

SED에서는 첫 번째 경우에만 "first"라는 단어를 "moon"으로 바꿉니다(즉, "first"가 여러 번 나타나는 경우 첫 번째만 대체됩니다). 이 명령은 "file.txt"라는 파일에서 검색하고 교체가 완료되면 결과가 "moon.txt" 파일에 저장됩니다.

다음과 같습니다:


필요한 곳에 "/"를 꼭 넣어주세요. "/"가 생략되면 SED는 명령을 승인하지 않습니다.

지금까지는 '처음'이라는 단어만 '만남'이라는 단어로 대체했습니다. 이제 세 번째 줄의 "line"이라는 단어(여러 번, 구체적으로 4번 나타남)를 "Angel"이라는 단어로 바꾸고 싶다고 가정해 보겠습니다.

세 번째 라인을 구체적으로 어떻게 타겟팅하나요? 다음 명령을 사용합니다:

SED‘3S/Line/Angel/I’file.txt>angel.txt

그럼 여기서 무슨 일이 일어났나요? 좋습니다. "3"은 줄 번호를 지정합니다. 그래서 세 번째 줄이 나왔습니다. 그런 다음 "file.txt"라는 파일에서 "angel.txt"를 "line"으로 바꾸고 변환된 파일을 "angel.txt"로 저장합니다.


행 "3"과 "4"를 바꾸거나 변환하려면 어떻게 해야 하나요?

Sed'3,4s/line/Angel/I'file.txt>angel2.txt


이전 예에서는 무시를 나타내기 위해 "i" 플래그를 사용했습니다. 이제 "g" 플래그를 사용하여 전역을 나타냅니다.

“s” 명령이 어떻게 작동하는지 예를 들어 보겠습니다.

sed's/line/sun/g 'file.txt>

이런 표현이 주어지면 다음을 의미합니다.

G는 글로벌을 의미합니다. 첫 번째 예에서 "i" 플래그를 사용했을 때 대체 항목은 하나만 있었다는 점을 기억하세요. global에 "g"를 추가했기 때문에 이는 어디에나 대안이 있다는 것을 의미합니다. 따라서 첫 번째 행, 두 번째 행, 세 번째 행, 마지막 행을 말하는 대신 첫 번째 태양, 두 번째 태양, 세 번째 태양 및 마지막 태양을 말합니다. 전체 파일의 단어 줄(모든 위치)을 "sun"이라는 단어로 바꿉니다.

이제 포함된 단어를 기반으로 줄을 선택하려면 어떻게 해야 할까요? 자, "file.txt"의 마지막 줄에 "last"라는 단어가 있는 것을 볼 수 있습니다. 이제 "This is the last line"을 원한다고 가정해 보겠습니다. 이것이 마지막 말이다." "마지막 유령이다. 이것이 마지막 말입니다."

우리는 다음과 같이 씁니다:

Sed'/last/S/line/host/'file.txt>.ghost.txt

여기서 "last"는 SED에게 "last"라는 단어가 포함된 줄을 찾은 다음 해당 줄 내에서 "line"이라는 단어를 "ghost"로 바꾸도록 지시합니다.

이제 그 반대를 하고 싶다고 가정해 보겠습니다. "last"라는 단어가 없는 모든 줄에서 "line"이라는 단어가 "host"로 변경되기를 원한다고 가정해 보겠습니다. 다음을 작성해 봅시다:

'/마지막/!'을 선택해주세요. S/라인/고스트/'file.txt>.ghost2.txt

여기에서 볼 수 있듯이 마지막 줄("last"라는 단어 포함)을 제외한 모든 줄에는 "ghost"라는 단어가 "line"이라는 단어로 대체되어 있습니다.

줄 번호를 사용하여 이 작업을 수행할 수도 있습니다.

세드'3,4! S/行/夜/I'file.txt>night.txt

이 경우 3행과 4행은 생략되지만, 다른 모든 행에는 "line"이라는 단어가 "night"라는 단어로 대체됩니다.

여러 명령

그렇다면 명령어가 여러 개라면 어떻게 될까요? 시간과 노력을 절약하기 위해 한 번에 하나씩 수행하시겠습니까, 아니면 한꺼번에 수행하시겠습니까?

첫 번째를 낮으로, 두 번째를 밤으로, 휴식을 유령으로 바꾸고 싶다면 어떻게 해야 할까요? 세미콜론을 사용하여 이를 수행합니다. 마지막에 세미콜론을 넣는 것을 잊지 마세요!

"i" 기호나 "무시" 기호를 넣을 필요는 없지만 변환 문구 뒤에 슬래시(/)를 넣어야 한다는 점에 유의하세요.

이제 예를 들어 확인해 보겠습니다.

sed's/first/day/;s/second/night/;s/third/ghost/;s/last/ghost/;'file.txt>

결론

스트림 편집기 또는 SED는 단어나 패턴을 선택하고 변환하는 방법으로, 사실상 Windows의 "찾기" 및 "바꾸기" 기능에 해당하는 명령줄입니다. SED 명령은 매우 복잡해질 수 있지만 최소한 기본 사항만 알면 준비가 된 것입니다! SED는 실제로 매우 강력한 도구입니다. 하나의 튜토리얼에서 모든 내용을 다룰 수는 없지만 SED의 기본 사항은 다룹니다. 본질적으로 우리는 "s" 명령을 사용하여 특정 단어를 변환하는 방법을 배웠습니다. 여기서 "s"는 대체 단어를 나타냅니다. 단어를 다른 단어로 바꿀 수도 있고, 바꿀 줄을 선택적으로 선택하거나 심지어 부정할 수도 있습니다. 어느 쪽이든 이것은 SED에서 가장 쉬운 부분입니다.

즐거운 코딩하세요!

위 내용은 스트림 편집기(SED): 기본 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:mryunwei.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿