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

Seuteulim Pyeonjibgi Sed Gibon Sahang



스트림 편집기라고도 알려진 SED는 매우 유용한 도구입니다. 특정 단어나 패턴을 검색한 후 해당 단어나 패턴에 대해 작업을 수행하거나 다른 말로 변환하는 데 사용됩니다. Windows에서 SED는 '찾기' 및 '바꾸기' 기능으로도 알려져 있습니다. SED는 Ubuntu와 함께 제공되므로 아무것도 설치할 필요가 없습니다. 그냥 사용해 보세요. 이 튜토리얼에서는 SED 또는 스트림 편집기를 사용하는 방법을 설명합니다.

'S' 명령

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







'에스 / 정규 표현식 / 대사 / 깃발


따라서 예제에서는 'file.txt'라는 파일을 사용하겠습니다. 'file.txt'를 고양이로 표시하면 다음과 같습니다.




예를 들어 's' 명령이 어떻게 작동하는지 보여드리겠습니다.



하지만 '에스 / 첫 번째 / / 나' 파일.txt > 달.txt


그러한 표현이 주어지면 다음을 의미합니다.





    • s - 대체품의 약자입니다.
    • first – “file.txt”라는 파일에서 검색할 단어입니다.
    • 달 – 'first'라는 단어가 'moon'이라는 단어로 대체됩니다.
    • i – 무시를 의미합니다. 처음에는 이 부분을 무시하겠습니다.
    • file.txt – SED가 패턴이나 단어를 검색할 파일입니다. 이 경우 'first'라는 단어는 다음과 같습니다.
    • file.txt에서 검색됨

    • moon.txt – “first”라는 단어가 “moon”이라는 단어로 바뀌면 “moon.txt”라는 이름으로 저장됩니다.

그렇다면 여기서 무슨 일이 일어나고 있는 걸까요? SED는 첫 번째 경우에만 'moon'을 'first'라는 단어로 대체합니다. 즉, 'first'라는 단어가 여러 번 나오는 경우 전체를 바꾸거나 여러 번 바꾸지 않는다는 의미입니다. 검색하는 파일은 'file.txt'이며, 변환 또는 교체가 완료되면 'moon.txt'라는 폴더에 저장됩니다.



다음과 같이 보입니다.


꼭 필요한 곳에 '/'를 넣어주세요. '/'를 생략하면 SED가 명령을 수락하지 않습니다.

지금까지 우리는 '처음'이라는 단어를 '만난'이라는 단어로 대체했습니다. 이제 세 번째 줄의 'line'이라는 단어(여러 번 발생 - 구체적으로 4번 발생)를 'angel'이라는 단어로 바꾸고 싶다고 가정해 보겠습니다.

세 번째 라인을 구체적으로 어떻게 타겟팅합니까? 우리는 다음 명령을 사용합니다:

하지만 3초 / / 천사 / 나' 파일.txt > 천사.txt


그럼 여기서 방금 무슨 일이 일어났나요? 음, '3'은 줄 번호를 지정합니다. 따라서 세 번째 줄로 이동합니다. 그런 다음 'file.txt'라는 파일에서 'angel'을 'line'이라는 단어로 대체하고 변환된 파일을 'angel.txt'로 저장합니다.


'3'과 '4' 줄을 바꾸거나 변환하려면 어떻게 해야 합니까?

하지만 ' ,4초 / / 천사 / 나' 파일.txt > angel2.txt



이전 예에서는 무시를 위해 'i' 플래그를 사용했습니다. 이제 전역에 'g' 플래그를 사용합니다.

예를 들어 's' 명령이 어떻게 작동하는지 보여드리겠습니다.

하지만 '에스 / / / g' 파일.txt > 태양.txt


그러한 표현이 주어지면 다음을 의미합니다.

'g'는 글로벌을 의미합니다. 첫 번째 예에서 'i' 플래그를 사용할 때 대체 항목은 하나만 있다는 점을 기억하세요. 이제 전역을 의미하는 'g'를 추가했으므로 이는 모든 곳에서 대체됨을 의미합니다. 따라서 첫 번째 줄, 두 번째 줄, 세 번째 줄, 마지막 줄을 말하는 대신 첫 번째 태양, 두 번째 태양, 세 번째 태양, 마지막 태양이라고 말합니다. 전체 파일(모든 위치)의 단어 줄을 'sun'이라는 단어로 바꿉니다.


이제 포함된 단어를 기반으로 한 줄을 선택하려면 어떻게 해야 할까요? 자, “file.txt”의 마지막 줄에 “last”라는 단어가 있는 것을 볼 수 있습니다. 이제 “이것이 마지막 줄입니다. 이것이 마지막 문장이다.” “이것이 마지막 유령이다. 이것이 마지막 문장이다.”

우리는 다음을 작성합니다:

하지만 ' / 마지막 / 에스 / / 귀신 / ’ 파일.txt > 유령.txt


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


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

하지만 ' / 마지막 /! 에스 / / 귀신 / ’ 파일.txt > ghost2.txt


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


줄 번호로도 이 작업을 수행할 수 있습니다.

하지만 ' , 4 ! 에스 / / / 나' 파일.txt > 밤.txt


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

다중 명령

이제 여러 명령이 있으면 어떻게 될까요? 한 번에 하나씩 하시겠습니까, 아니면 한꺼번에 하여 시간과 노력을 절약하시겠습니까?

'first'라는 단어를 'day'로, 'second'를 'night'로, 'the Rest'를 'ghost'로 바꾸고 싶다면 어떻게 해야 할까요? 이를 위해 세미콜론을 사용합니다. 마지막에 세미콜론을 넣는 것을 잊지 마세요!

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

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

하지만 '에스 / 첫 번째 / / ; 에스 / 두번째 / / ; 에스 / 제삼 / 귀신 / ; 에스 / 마지막 / 귀신 / ;' 파일.txt > 조합.txt


결론

스트림 편집기 또는 SED는 단어나 패턴을 선택하고 변환하는 방법입니다. 이는 실제로 Window의 '찾기' 및 '바꾸기' 기능과 동일한 명령줄입니다. SED 명령은 매우 복잡해질 수 있지만 최소한 기본 사항만 알면 바로 시작할 수 있습니다! SED는 실제로 많은 기능을 갖춘 매우 강력한 도구입니다. 하나의 튜토리얼에서 모든 내용을 다룰 수는 없지만 SED의 기본 사항은 다루었습니다. 본질적으로 우리는 's'가 대체를 나타내는 's' 명령을 사용하여 특정 단어를 변환하는 방법을 배웠습니다. 해당 단어를 다른 단어로 대체할 수 있고, 대체가 발생할 행을 선택적으로 선택하거나 심지어 이를 무효화할 수도 있습니다. 어느 쪽이든 이것은 SED에서 가장 쉬운 부분입니다.

즐거운 코딩하세요!