`sed`를 사용하여 경기 후 줄을 삽입하는 방법은 무엇입니까?

How Insert Line After Match Using Sed



Linux의 유용하고 강력한 명령 중 하나는 sed 명령입니다. 이 명령은 일치를 기반으로 특정 텍스트나 줄을 삽입, 업데이트 및 삭제하는 등 Linux에서 다양한 유형의 작업을 수행하는 데 사용됩니다. sed 명령을 사용하여 다양한 방법으로 문자열이나 파일에 텍스트를 삽입할 수 있습니다.

문자열이나 줄에서 일치하는 항목을 찾은 후 줄을 삽입하는 방법은 이 자습서에 나와 있습니다.







문자열에 줄 삽입

명령에 정의된 패턴이 문자열 값의 일부와 일치하는 경우 sed 명령을 사용하여 문자열 값 뒤에 새 행을 삽입할 수 있습니다.



다음 예는 특정 문자열이 문자열 값의 아무 곳에나 존재하는 경우 문자열 값 뒤에 새 행을 추가하는 방법을 보여줍니다.



예-1: 일치하는 항목을 찾은 후 문자열에 줄 삽입

다음 명령은 문자열에서 inng를 검색합니다. I like programming, 텍스트 줄 Do you like programming? 검색 문자열이 있는 경우 문자열 뒤에 삽입됩니다.





여기서 & 문자는 문자열 뒤에 줄을 삽입하는 데 사용됩니다.

$던졌다 '나는 프로그래밍을 좋아한다.' | 세드 's / inng / & 프로그래밍을 좋아하세요? / '

다음 출력은 inng가 문자열에 없고 문자열 뒤에 삽입된 줄이 없음을 보여줍니다.




다음 명령은 ing을 검색합니다. 문자열에서 프로그래밍을 좋아하고 문자열에 존재합니다.

$던졌다 '나는 프로그래밍을 좋아한다.' | 세드 's/ing./& 프로그래밍을 좋아하세요?/'

다음 출력은 문자열 뒤에 새 줄이 추가되었음을 보여줍니다.

파일에 줄 삽입

아래에 언급된 파일에서 일치하는 항목이 발견된 후 줄을 삽입하는 방법에는 두 가지가 있습니다. -i 옵션 없이 sed 명령을 사용하면 파일 내용이 변경되지 않고 출력에 줄 바꿈이 삽입된 파일 내용이 표시됩니다. 파일에 일치하는 패턴이 있는 경우 파일에 새 행을 영구적으로 삽입하려면 sed 명령과 함께 -i 옵션을 사용해야 합니다.

A. sed 명령에서 a 사용

a는 sed의 검색 패턴에서 검색 패턴이 일치하는 줄 뒤 또는 특정 줄 번호 뒤에 파일에서 하나 이상의 줄을 추가하는 데 사용할 수 있습니다.

B. sed 명령에서 i 사용

i는 sed 명령의 검색 패턴에서 검색 패턴이 일치하는 줄 앞에 파일에서 하나 이상의 줄을 삽입하는 데 사용할 수 있습니다.

패턴에 따라 파일에 줄 삽입:

이름이 탭으로 구분된 텍스트 파일 만들기 제품.txt 다음 내용과 함께 sed 명령에서 위 플래그의 사용을 보여줍니다.

제품.txt

아이디 이름

01 휘핑크림

02 코코아파우더

03 설탕

04 계란

05 밀가루

예-2: a를 사용하여 특정 줄 번호 뒤에 줄 삽입

다음 명령은 sed 명령에 사용된 패턴을 기반으로 products.txt 파일의 특정 행 번호 뒤에 새 행을 추가하는 방법을 보여줍니다.

여기서 첫 번째 명령은 파일의 기존 내용을 표시합니다. sed 명령은 파일의 처음 두 줄 뒤에 b01 Baking powder라는 텍스트를 추가합니다. 마지막 명령은 파일 내용이 변경되었는지 확인하는 데 사용됩니다.

$고양이제품.txt

$세드 '2 b01 베이킹파우더'제품.txt

$고양이제품.txt

위의 명령을 실행하면 다음 출력이 나타납니다.

예-3: a를 사용하여 마지막 줄 뒤에 줄 삽입

다음 명령은 파일의 마지막 줄 뒤에 새 줄을 추가하는 방법을 보여줍니다. 첫 번째 및 마지막 명령은 sed 명령을 실행하기 전과 후에 파일의 기존 내용을 보여줍니다. $ 기호는 sed 명령의 패턴에서 파일의 마지막 줄을 언급하는 데 사용됩니다.

$고양이제품.txt

$세드 '$ a b01 베이킹 파우더'제품.txt

$고양이제품.txt

위의 명령을 실행하면 다음 출력이 나타납니다.

예-4: a를 사용하여 패턴을 일치시킨 후 파일의 아무 곳에나 줄 삽입

다음 sed 명령은 일치하는 패턴을 기반으로 파일의 아무 곳에나 새 행을 추가하는 방법을 보여줍니다. sed 명령에 사용된 패턴은 s01로 시작하는 모든 줄을 검색하고 그 뒤에 새 문자열을 추가합니다. 파일의 네 번째 줄은 s01로 시작하고 새 줄이 그 줄 뒤에 삽입됩니다.

$고양이제품.txt

$세드 '/^s01.*/a b01 베이킹 파우더'제품.txt

$고양이제품.txt

명령을 실행하면 다음 출력이 나타납니다.


다음 sed 명령은 분말로 끝나는 줄을 검색하고 그 뒤에 새 줄을 삽입합니다. 파일의 세 번째 줄은 파우더로 끝납니다. 따라서 해당 줄 뒤에 새 줄이 삽입됩니다.

$고양이제품.txt

$세드 '/파우더$/a b01 베이킹 파우더'제품.txt

$고양이제품.txt

위의 명령을 실행하면 다음 출력이 나타납니다.

예-5: 일치하는 패턴 뒤에 여러 줄 삽입

다음 sed 명령은 일치하는 패턴을 기반으로 파일 내용 내에 여러 줄을 추가하는 방법을 보여줍니다.

여기서는 패턴에 따라 세 번째 줄 다음에 두 줄을 추가합니다.

$고양이제품.txt

$세드 '/^[a-c]/a b01 베이킹 파우더 b02 베이킹 소다'제품.txt

$고양이제품.txt

위의 명령을 실행하면 다음 출력이 나타납니다.

예-6: I를 사용하여 패턴을 일치시킨 후 라인 삽입

$고양이제품.txt

$세드 '/크림/i b01 베이킹 파우더'제품.txt

$고양이제품.txt

위의 명령을 실행하면 다음 출력이 나타납니다.

예-7: -i 옵션을 사용하여 일치하는 패턴 뒤에 영구적으로 줄 삽입

다음 sed 명령은 파일 내용을 영구적으로 변경하는 방법을 보여줍니다. i 옵션은 sed 명령과 함께 사용되어 패턴을 기반으로 파일에 새 행을 삽입합니다.

$고양이제품.txt

$세드 -NS '/e$/a g01 기'제품.txt

$고양이제품.txt

위의 명령을 실행하면 다음 출력이 나타납니다.

결론:

패턴과 함께 sed 명령을 사용하여 파일에 두 개 이상의 라인을 삽입하는 방법은 독자가 패턴을 기반으로 임시 또는 영구적으로 라인을 삽입하기 위해 이 명령을 적용하는 데 도움이 되도록 이 튜토리얼에서 보여줍니다.