`sed` 명령을 사용하여 개행을 쉼표로 바꾸는 방법

How Replace Newline With Comma Using Sed Command



모든 문자나 문자열은 `sed` 명령을 사용하여 바꿀 수 있습니다. 때로는 파일의 개행 문자( )를 쉼표로 바꿔야 합니다. 이 기사에서는 `sed` 명령을 사용하여 을 쉼표로 바꿉니다.

`sed`를 사용하여 을 쉼표로 대체

을 쉼표로 바꾸면 많은 문제가 발생할 수 있습니다. 기본적으로 파일을 생성할 때 모든 줄은 으로 끝납니다. `sed` 명령은 에서 쉽게 분할할 수 있고 개행 문자를 임의의 문자로 바꿀 수 있습니다. 대신 다른 구분 기호를 사용할 수 있지만 GNU sed가 사용되는 경우에만 가능합니다. 파일의 마지막 줄에 이 없으면 GNU sed는 인쇄를 피할 수 있습니다. 또한 은 일반적으로 `sed`의 각 연속 출력에 추가됩니다.







파일 생성

이 기사에서는 `sed` 명령을 사용하여 을 쉼표로 바꾸는 방법을 보여줍니다. 이 튜토리얼을 따라 하려면 다음과 같은 텍스트 파일을 만드십시오. 클라이언트.txt 다음 표 형식의 클라이언트 정보와 함께.



ID 이름 이메일 핸드폰
c01 MD 라키브 [이메일 보호됨] 01856233238
c02 메허 아프로즈 [이메일 보호됨] 01733536342
c03 파크룰 아산 [이메일 보호됨] 01934737248
c04 헬랄 우딘 [이메일 보호됨] 01534895898
c05 누스랏 자한 [이메일 보호됨] 01866345254

예 1: -z를 사용하여 을 쉼표로 바꿉니다.

-z 옵션은 을 널 문자()로 변환하는 데 사용됩니다. 파일 내용에 null 문자가 포함되어 있지 않으면 한 줄로 처리됩니다. `sed` 명령은 줄 바꿈을 null 문자로 변환하고 첫 번째 검색 및 바꾸기 패턴을 사용하여 각 을 쉼표로 바꿉니다. 여기서 'g'는 을 전역적으로 검색하는 데 사용됩니다. 두 번째 검색 및 바꾸기 패턴을 사용하면 마지막 쉼표가 으로 바뀝니다.



$고양이클라이언트.txt

$세드 -와 함께 's/ /,/g;s/,$/ /'클라이언트.txt

명령을 실행하면 다음 출력이 생성됩니다.





예 2: a, b, $를 사용하여 을 쉼표로 바꿉니다! 그리고 N

`sed` 명령은 다음을 사용하여 을 쉼표로 바꾸는 데 사용할 수 있습니다. a, b, N 및 $! . 여기, 에게 작업을 추가하는 데 사용되며, NS 콘텐츠를 분기하는 데 사용되며, N 다음 줄로 이동하는 데 사용되며, $! 대체 작업이 마지막 줄에 적용되는 것을 방지하는 데 사용됩니다. 명령은 각각을 대체합니다. N 마지막 줄을 제외하고 쉼표로.



$고양이클라이언트.txt

$세드 ':a;N;$!ba;s/ /,/g'클라이언트.txt

명령을 실행하면 다음 출력이 생성됩니다.

예 3: H, h, d, x 및 y를 사용하여 을 쉼표로 바꿉니다.

교체를 원하시면 N) 작은 파일에 쉼표가 있으면 다음 `sed` 명령을 사용할 수 있습니다. 여기, 시간 마지막 줄을 유지 텍스트에 추가하는 데 사용되며, 1h는 파일의 모든 줄을 첫 번째 줄의 유지 텍스트로 복사하는 데 사용됩니다. $!d 마지막 줄을 제외한 모든 줄을 삭제하는 데 사용됩니다. NS 보유 텍스트와 패턴 공간을 교환하는 데 사용되며, 그리고 각각을 대체하는 데 사용됩니다. N 쉼표와 함께 유지 텍스트에서.

$고양이클라이언트.txt

$세드 'H;1h;$!d;x;y/ /,/'클라이언트.txt

명령을 실행하면 다음 출력이 생성됩니다.

예 4: -n, H, h, g 및 p를 사용하여 을 쉼표로 바꿉니다.

`sed` 명령을 사용하여 대체할 수 있습니다. N 쉼표로 -N 자동 인쇄를 방지하는 옵션입니다. 앞의 예에서와 같이, 시간 여기에서 유지 텍스트에 마지막 줄을 추가하는 데 사용됩니다. 1시간 파일의 모든 줄을 유지 텍스트로 복사하는 데 사용됩니다. $ 파일의 마지막 줄을 참조하고, NS 보유 텍스트에서 복사하는 데 사용되며, NS 인쇄하는 데 사용됩니다.

$고양이클라이언트.txt

$세드-N'하;1h; ${g;s /N/,/g;p}'클라이언트.txt

위의 명령을 실행하면 다음과 같은 출력이 생성됩니다.

예 5: H, x, p를 사용하여 을 쉼표로 바꿉니다.

H, x 및 p 이전 예제에서 설명했습니다. 첫 번째 검색 및 바꾸기 표현식이 각 N 두 번째 검색 및 바꾸기 표현식은 줄의 시작 부분에 있는 쉼표를 공백으로 바꿉니다.

$고양이클라이언트.txt

$세드-N'H;${x;s/ /,/g;s/^,//;p;}'클라이언트.txt

위의 명령을 실행하면 다음과 같은 출력이 생성됩니다.

예 6: N 및 `cat`을 사용하여 을 쉼표로 바꿉니다.

여기서 `cat` 명령은 파일의 내용을 `sed` 명령으로 보내는 데 사용되며, N 다음 줄로 이동할 때 사용합니다.

$고양이클라이언트.txt

$고양이클라이언트.txt| 세드 'N;s/ /,/'

위의 명령을 실행하면 다음과 같은 출력이 생성됩니다.

결론

한 파일 형식에서 다른 파일 형식으로 데이터를 전송하려면 을 쉼표로 바꿔야 할 수도 있습니다. 이러한 유형의 교체는 다른 Linux 명령을 사용하여 수행할 수도 있습니다. H, N, h 및 x와 같은 많은 명령 옵션을 `sed` 명령과 함께 사용하여 이 작업을 완료할 수 있습니다. 이 튜토리얼에서는 `sed` 명령을 사용하여 을 쉼표로 바꾸는 여러 방법을 설명합니다.